name: CI - E2E - Mobile (webview) Browser on: workflow_dispatch: # push: # paths-ignore: # - 'docs/**' # branches: # - 'main' # pull_request: # paths-ignore: # - 'docs/**' # branches: # - 'main' # - 'next-**' jobs: mobile-test: name: Test curriculum for mobile app runs-on: ubuntu-20.04 strategy: matrix: node-version: [18.x] steps: - name: Checkout Source Files uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3 - name: Checkout mobile uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3 with: repository: freeCodeCamp/mobile path: mobile - name: Setup pnpm uses: pnpm/action-setup@v2 with: version: 8 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3 with: node-version: ${{ matrix.node-version }} # cypress-io/github-action caches the store, so we should not cache it # here. - name: Setup Flutter 3.3.x uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa # v2 with: flutter-version: '3.3.x' channel: 'stable' cache: true cache-key: flutter-3.3.x cache-path: ${{ runner.tool_cache }}/flutter - name: Set freeCodeCamp Environment Variables run: cp sample.env .env - name: Install and Build run: | pnpm install pnpm run create:config pnpm run build:curriculum - name: Generate mobile test files run: | cd mobile/mobile-app echo "DEVELOPMENTMODE=true" > .env echo "NEWSURL=https://www.freecodecamp.org/news/ghost/api/v3/content/" >> .env flutter pub get flutter test test/widget_test.dart # This is a workaround for the fact that Cypress does not support # running in a sub-directory. # # In our cypress config, we default to the cypress/e2e/default directory. # We need to change this to cypress/e2e/ for the specific tests we are running # in this workflow. # - name: Adjust the Cypress Config run: | sed -i 's#cypress/e2e/default/#cypress/e2e/#g' cypress.config.js - name: Cypress run uses: cypress-io/github-action@v4 with: record: ${{ env.CYPRESS_RECORD_KEY != 0 }} start: npx serve wait-on: http://localhost:3000 wait-on-timeout: 1200 config: retries=1,screenshotOnRunFailure=false,video=false,baseUrl=http://localhost:3000/mobile/mobile-app/generated-tests/ browser: chrome spec: cypress/e2e/mobile-learn/test-challenges.js env: CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}