Skip to content

chore: release/2024 07 31 #10828

chore: release/2024 07 31

chore: release/2024 07 31 #10828

Workflow file for this run

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() }}