name: Cypress Tests on: # manual button click from the GitHub UI workflow_dispatch: push: branches: - main - develop pull_request: branches: - '**' jobs: prepare: runs-on: ubuntu-latest outputs: uuid: ${{ steps.uuid.outputs.value }} steps: - name: Generate unique ID 💎 id: uuid run: echo "{name}={sha-$GITHUB_SHA-time-$(date +"%s")}" >> $GITHUB_ENV - name: Print unique ID 🖨` run: echo "generated id ${{ steps.uuid.outputs.value }}" install: needs: ['prepare'] container: image: cypress/included:cypress-12.17.3-node-18.16.1-chrome-114.0.5735.133-1-ff-114.0.2-edge-114.0.1823.51-1 options: --user 1001 runs-on: ubuntu-latest strategy: fail-fast: false matrix: node-version: [18.16.1] steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 - name: Cache uses: actions/setup-node@v3 with: node-version: 18.16.1 cache: 'yarn' - run: yarn install --immutable --inline-builds - run: yarn moon run server:build client:build - name: Save build folder uses: actions/upload-artifact@v3 with: name: moon-cache path: .moon/cache if-no-files-found: error RedTeamChrome: runs-on: ubuntu-latest container: image: cypress/included:cypress-12.17.3-node-18.16.1-chrome-114.0.5735.133-1-ff-114.0.2-edge-114.0.1823.51-1 options: --user 1001 needs: [prepare, install] strategy: fail-fast: false matrix: containers: [1, 2] node-version: [18.16.1] steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 - name: Cache uses: actions/setup-node@v3 with: node-version: 18.16.1 cache: 'yarn' - name: Download the build folders uses: actions/download-artifact@v3 with: name: moon-cache path: .moon/cache - run: yarn install --immutable --inline-builds - name: Red Team Tests - Chrome v${{ matrix.node }} uses: cypress-io/github-action@v5 with: tag: node-${{ matrix.node }} start: yarn start:test-app wait-on: 'http://localhost:4000/api/graphql, http://localhost:3500' browser: chrome group: 'Red Team - Chrome' config: baseUrl=http://localhost:3500 record: true parallel: true config-file: applications/redeye-e2e/cypress.config.js spec: applications/redeye-e2e/src/integration/e2e/redteam/**/**/**/*.cy.js ci-build-id: ${{ needs.prepare.outputs.uuid }} env: CYPRESS_PROJECT_ID: 'rsybgk' CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY_RED }} BlueTeamChrome: runs-on: ubuntu-latest container: image: cypress/included:cypress-12.17.3-node-18.16.1-chrome-114.0.5735.133-1-ff-114.0.2-edge-114.0.1823.51-1 options: --user 1001 needs: [prepare, install] strategy: fail-fast: false matrix: containers: [1, 2] node-version: [18.16.1] steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 - name: Cache uses: actions/setup-node@v3 with: node-version: 18.16.1 cache: 'yarn' - name: Download the build folders uses: actions/download-artifact@v3 with: name: moon-cache path: .moon/cache - run: yarn install --immutable --inline-builds - name: 'Blue Team Tests - Chrome' uses: cypress-io/github-action@v5 with: tag: node-${{ matrix.node }} start: yarn start:test-app wait-on: 'http://localhost:4000/api/graphql, http://localhost:3500' browser: chrome group: 'Blue Team - Chrome' config: baseUrl=http://localhost:3500 record: true parallel: true config-file: applications/redeye-e2e/cypress.config.js spec: applications/redeye-e2e/src/integration/e2e/blueteam/**/*.cy.js ci-build-id: ${{ needs.prepare.outputs.uuid }} env: CYPRESS_PROJECT_ID: '46ahz3' SERVER_BLUE_TEAM: 'true' CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY_BLUE }} # RedTeamFirefox: # runs-on: ubuntu-latest # needs: [prepare, install] # strategy: # fail-fast: false # # steps: # - name: Checkout # uses: actions/checkout@v3 # # - name: Cache # uses: actions/setup-node@v3 # with: # cache: 'yarn' # - run: git fetch # - run: git config pull.rebase true # - run: git pull origin $GITHUB_HEAD_REF # - run: yarn install # - run: yarn moon run server:build && yarn moon run client:build # # - name: 'Red Team Tests - Firefox' # uses: cypress-io/github-action@v5.0.0 # with: # start: yarn start # wait-on: 'http://localhost:4000/api/graphql, http://localhost:3500' # browser: firefox # group: 'Red Team - Firefox' # working-directory: applications/redeye-e2e # config: baseUrl=http://localhost:3500 # record: true # parallel: true # config-file: cypress.config.js # spec: src/integration/e2e/redteam/**/**/**/*.cy.js # ci-build-id: ${{ needs.prepare.outputs.uuid }} # env: # CYPRESS_PROJECT_ID: 'rsybgk' # CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY_RED1 }} # # BlueTeamFirefox: # runs-on: ubuntu-latest # needs: [prepare, install] # strategy: # fail-fast: false # # steps: # - name: Checkout # uses: actions/checkout@v3 # # - name: Download the build folders # uses: actions/download-artifact@v3 # with: # name: moon-cache # path: .moon/cache # # - name: Cache # uses: actions/setup-node@v3 # with: # cache: 'yarn' # - run: git fetch # - run: git config pull.rebase true # - run: git pull origin $GITHUB_HEAD_REF # - run: yarn install # - run: yarn moon run server:build && yarn moon run client:build # # - name: 'Blue Team Tests - Firefox' # uses: cypress-io/github-action@v5.0.0 # with: # start: yarn start:blue # wait-on: 'http://localhost:4000/api/graphql, http://localhost:3500' # browser: firefox # group: 'Blue Team - Firefox' # working-directory: applications/redeye-e2e # config: baseUrl=http://localhost:3500 # record: true # parallel: true # config-file: cypress.config.js # spec: src/integration/e2e/blueteam/**/*.cy.js # ci-build-id: ${{ needs.prepare.outputs.uuid }} # env: # CYPRESS_PROJECT_ID: '46ahz3' # CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY_BLUE1 }}