chore: release/2024 07 31 #10828
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
# build on PR creation/updates | |
pull_request: | |
types: [opened, synchronize] | |
env: | |
NODE_VERSION: lts/hydrogen | |
REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN }} | |
REACT_APP_PINATA_API_KEY: ${{ secrets.REACT_APP_PINATA_API_KEY }} | |
REACT_APP_PINATA_SECRET_API_KEY: ${{ secrets.REACT_APP_PINATA_SECRET_API_KEY }} | |
REACT_APP_GOOGLE_ANALYTICS_ID: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID }} | |
REACT_APP_BLOCKNATIVE_API_KEY: ${{ secrets.REACT_APP_BLOCKNATIVE_API_KEY }} | |
REACT_APP_BFF_BASE_URL: ${{ secrets.BFF_BASE_URL }} | |
REACT_APP_CMS_BASE_URL: ${{ secrets.CMS_BASE_URL }} | |
NEXT_PUBLIC_CMS_BASE_URL: ${{ secrets.CMS_BASE_URL }} | |
jobs: | |
setup: | |
name: Setup | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: yarn | |
- name: Cache node_modules | |
id: cache-node-modules | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-${{ matrix.node-version }}-nodemodules1-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-${{ matrix.node-version }}-nodemodules1- | |
- name: Install dependencies | |
run: yarn install --frozen-lockfile | |
- name: Cache generated files | |
id: cache-generated-files | |
uses: actions/cache@v3 | |
with: | |
path: | | |
src/state/data | |
src/locales | |
key: ${{ runner.os }}-generatedFiles-${{ hashFiles('**/yarn.lock') }} | |
test: | |
name: Test | |
needs: setup | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: yarn | |
- name: Load dependencies | |
id: cache-node-modules | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-${{ matrix.node-version }}-nodemodules1-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-${{ matrix.node-version }}-nodemodules1- | |
- name: Load generated files | |
id: cache-generated-files | |
uses: actions/cache@v3 | |
with: | |
path: | | |
src/state/data | |
src/locales | |
key: ${{ runner.os }}-generatedFiles-${{ hashFiles('**/yarn.lock') }} | |
- name: Unit Test | |
run: yarn test | |
# - name: Coveralls | |
# uses: coverallsapp/github-action@v1.1.2 | |
# with: | |
# github-token: ${{ secrets.GITHUB_TOKEN }} | |
lint: | |
name: Lint | |
needs: setup | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: yarn | |
- name: Load dependencies | |
id: cache-node-modules | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-${{ matrix.node-version }}-nodemodules1-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-${{ matrix.node-version }}-nodemodules1- | |
- name: Load generated files | |
id: cache-generated-files | |
uses: actions/cache@v3 | |
with: | |
path: | | |
src/state/data | |
src/locales | |
key: ${{ runner.os }}-generatedFiles-${{ hashFiles('**/yarn.lock') }} | |
- name: Run eslint | |
run: yarn lint | |
integration-tests: | |
name: Cypress | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Increase watchers | |
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p | |
- name: Set up node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: yarn | |
# Install deps only | |
- name: Cypress install dependencies | |
id: cypress-deps | |
uses: cypress-io/github-action@v5.0.5 | |
# Do not consider failure a failure. Well, sort of. | |
# See https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#steps-context | |
continue-on-error: true | |
with: | |
runTests: false | |
- name: Install Cypress binary | |
id: cypress-bin | |
# Only run if previous step failed | |
if: steps.cypress-deps.outcome == 'failure' | |
run: npx cypress install | |
- name: Start server in the background | |
run: yarn start & | |
# Actually run tests, building repo | |
- name: Cypress run | |
id: cypress-run | |
uses: cypress-io/github-action@v5.8.3 | |
with: | |
wait-on: http://[::1]:3000 | |
wait-on-timeout: 600 | |
install: false | |
working-directory: apps/cowswap-frontend-e2e | |
env: | |
CYPRESS_INTEGRATION_TEST_PRIVATE_KEY: ${{ secrets.CYPRESS_INTEGRATION_TEST_PRIVATE_KEY }} | |
CYPRESS_INTEGRATION_TESTS_INFURA_KEY: ${{ secrets.CYPRESS_INTEGRATION_TESTS_INFURA_KEY }} | |
# - uses: actions/upload-artifact@v3 | |
# if: always() | |
# with: | |
# name: cypress-videos | |
# path: | | |
# cypress-custom/videos | |
# cypress-custom/screenshots | |
# Open tmate ssh connection on failure for debugging | |
# Uncomment when needed and push upstream | |
# - name: Setup tmate session | |
# uses: mxschmitt/action-tmate@v3 | |
# if: ${{ failure() }} |