diff --git a/.github/workflows/test-backend.yml b/.github/workflows/test-backend.yml index fa43c9b81..2d2c9bb6b 100644 --- a/.github/workflows/test-backend.yml +++ b/.github/workflows/test-backend.yml @@ -1,7 +1,10 @@ name: ocelot.social backend test CI -on: [push] +on: + push: + branches: + - fix-runner jobs: files-changed: diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 921fb4fc8..9eafcddaa 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -1,112 +1,112 @@ -name: ocelot.social end-to-end test CI -on: push +# name: ocelot.social end-to-end test CI +# on: push -jobs: - docker_preparation: - name: Fullstack test preparation - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 +# jobs: +# docker_preparation: +# name: Fullstack test preparation +# runs-on: ubuntu-latest +# steps: +# - name: Checkout code +# uses: actions/checkout@v3 - - name: Copy env files - run: | - cp webapp/.env.template webapp/.env - cp backend/.env.template backend/.env +# - name: Copy env files +# run: | +# cp webapp/.env.template webapp/.env +# cp backend/.env.template backend/.env - - name: Build docker images - run: | - mkdir /tmp/images - docker build --target community -t "ocelotsocialnetwork/neo4j-community:test" neo4j/ - docker save "ocelotsocialnetwork/neo4j-community:test" > /tmp/images/neo4j.tar - docker build --target test -t "ocelotsocialnetwork/backend:test" backend/ - docker save "ocelotsocialnetwork/backend:test" > /tmp/images/backend.tar - docker build --target test -t "ocelotsocialnetwork/webapp:test" webapp/ - docker save "ocelotsocialnetwork/webapp:test" > /tmp/images/webapp.tar +# - name: Build docker images +# run: | +# mkdir /tmp/images +# docker build --target community -t "ocelotsocialnetwork/neo4j-community:test" neo4j/ +# docker save "ocelotsocialnetwork/neo4j-community:test" > /tmp/images/neo4j.tar +# docker build --target test -t "ocelotsocialnetwork/backend:test" backend/ +# docker save "ocelotsocialnetwork/backend:test" > /tmp/images/backend.tar +# docker build --target test -t "ocelotsocialnetwork/webapp:test" webapp/ +# docker save "ocelotsocialnetwork/webapp:test" > /tmp/images/webapp.tar - - name: Install cypress requirements - run: | - wget --no-verbose -O /opt/cucumber-json-formatter "https://github.com/cucumber/json-formatter/releases/download/v19.0.0/cucumber-json-formatter-linux-386" - cd backend - yarn install - yarn build - cd .. - yarn install +# - name: Install cypress requirements +# run: | +# wget --no-verbose -O /opt/cucumber-json-formatter "https://github.com/cucumber/json-formatter/releases/download/v19.0.0/cucumber-json-formatter-linux-386" +# cd backend +# yarn install +# yarn build +# cd .. +# yarn install - - name: Cache docker images - id: cache - uses: actions/cache/save@v3.3.1 - with: - path: | - /opt/cucumber-json-formatter - /home/runner/.cache/Cypress - /home/runner/work/Ocelot-Social/Ocelot-Social - /tmp/images/ - key: ${{ github.run_id }}-e2e-preparation-cache +# - name: Cache docker images +# id: cache +# uses: actions/cache/save@v3.3.1 +# with: +# path: | +# /opt/cucumber-json-formatter +# /home/runner/.cache/Cypress +# /home/runner/work/Ocelot-Social/Ocelot-Social +# /tmp/images/ +# key: ${{ github.run_id }}-e2e-preparation-cache - fullstack_tests: - name: Fullstack tests - if: success() - needs: docker_preparation - runs-on: ubuntu-latest - env: - jobs: 8 - strategy: - matrix: - # run copies of the current job in parallel - job: [1, 2, 3, 4, 5, 6, 7, 8] - steps: - - name: Restore cache - uses: actions/cache/restore@v3.3.1 - id: cache - with: - path: | - /opt/cucumber-json-formatter - /home/runner/.cache/Cypress - /home/runner/work/Ocelot-Social/Ocelot-Social - /tmp/images/ - key: ${{ github.run_id }}e2e-preparation-cache - fail-on-cache-miss: true +# fullstack_tests: +# name: Fullstack tests +# if: success() +# needs: docker_preparation +# runs-on: ubuntu-latest +# env: +# jobs: 8 +# strategy: +# matrix: +# # run copies of the current job in parallel +# job: [1, 2, 3, 4, 5, 6, 7, 8] +# steps: +# - name: Restore cache +# uses: actions/cache/restore@v3.3.1 +# id: cache +# with: +# path: | +# /opt/cucumber-json-formatter +# /home/runner/.cache/Cypress +# /home/runner/work/Ocelot-Social/Ocelot-Social +# /tmp/images/ +# key: ${{ github.run_id }}e2e-preparation-cache +# fail-on-cache-miss: true - - name: Boot up test system | docker-compose - run: | - chmod +x /opt/cucumber-json-formatter - sudo ln -fs /opt/cucumber-json-formatter /usr/bin/cucumber-json-formatter - docker load < /tmp/images/neo4j.tar - docker load < /tmp/images/backend.tar - docker load < /tmp/images/webapp.tar - docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps webapp neo4j backend - sleep 90s +# - name: Boot up test system | docker-compose +# run: | +# chmod +x /opt/cucumber-json-formatter +# sudo ln -fs /opt/cucumber-json-formatter /usr/bin/cucumber-json-formatter +# docker load < /tmp/images/neo4j.tar +# docker load < /tmp/images/backend.tar +# docker load < /tmp/images/webapp.tar +# docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps webapp neo4j backend +# sleep 90s - - name: Full stack tests | run tests - id: e2e-tests - run: yarn run cypress:run --spec $(cypress/parallel-features.sh ${{ matrix.job }} ${{ env.jobs }} ) +# - name: Full stack tests | run tests +# id: e2e-tests +# run: yarn run cypress:run --spec $(cypress/parallel-features.sh ${{ matrix.job }} ${{ env.jobs }} ) - - name: Full stack tests | if tests failed, compile html report - if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }} - run: | - cd cypress/ - node create-cucumber-html-report.js +# - name: Full stack tests | if tests failed, compile html report +# if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }} +# run: | +# cd cypress/ +# node create-cucumber-html-report.js - - name: Full stack tests | if tests failed, upload report - id: e2e-report - if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }} - uses: actions/upload-artifact@v3 - with: - name: ocelot-e2e-test-report-pr${{ needs.docker_preparation.outputs.pr-number }} - path: /home/runner/work/Ocelot-Social/Ocelot-Social/cypress/reports/cucumber_html_report +# - name: Full stack tests | if tests failed, upload report +# id: e2e-report +# if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }} +# uses: actions/upload-artifact@v3 +# with: +# name: ocelot-e2e-test-report-pr${{ needs.docker_preparation.outputs.pr-number }} +# path: /home/runner/work/Ocelot-Social/Ocelot-Social/cypress/reports/cucumber_html_report - cleanup: - name: Cleanup - if: success() - needs: [docker_preparation, fullstack_tests] - runs-on: ubuntu-latest - continue-on-error: true - steps: - - name: Delete cache - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh extension install actions/gh-actions-cache - KEY="${{ github.run_id }}-e2e-preparation-cache" - gh actions-cache delete $KEY -R Ocelot-Social-Community/Ocelot-Social --confirm \ No newline at end of file +# cleanup: +# name: Cleanup +# if: success() +# needs: [docker_preparation, fullstack_tests] +# runs-on: ubuntu-latest +# continue-on-error: true +# steps: +# - name: Delete cache +# env: +# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# run: | +# gh extension install actions/gh-actions-cache +# KEY="${{ github.run_id }}-e2e-preparation-cache" +# gh actions-cache delete $KEY -R Ocelot-Social-Community/Ocelot-Social --confirm \ No newline at end of file diff --git a/.github/workflows/test-webapp.yml b/.github/workflows/test-webapp.yml index 0f578dc46..0def21da3 100644 --- a/.github/workflows/test-webapp.yml +++ b/.github/workflows/test-webapp.yml @@ -1,115 +1,115 @@ -name: ocelot.social webapp test CI +# name: ocelot.social webapp test CI -on: [push] +# on: [push] -jobs: - files-changed: - name: Detect File Changes - Webapp - runs-on: ubuntu-latest - outputs: - docker: ${{ steps.changes.outputs.docker }} - webapp: ${{ steps.changes.outputs.webapp }} - steps: - - uses: actions/checkout@v3.3.0 +# jobs: +# files-changed: +# name: Detect File Changes - Webapp +# runs-on: ubuntu-latest +# outputs: +# docker: ${{ steps.changes.outputs.docker }} +# webapp: ${{ steps.changes.outputs.webapp }} +# steps: +# - uses: actions/checkout@v3.3.0 - - name: Check for frontend file changes - uses: dorny/paths-filter@v2.11.1 - id: changes - with: - token: ${{ github.token }} - filters: .github/file-filters.yml - list-files: shell +# - name: Check for frontend file changes +# uses: dorny/paths-filter@v2.11.1 +# id: changes +# with: +# token: ${{ github.token }} +# filters: .github/file-filters.yml +# list-files: shell - prepare: - name: Prepare - if: needs.files-changed.outputs.webapp == 'true' - needs: files-changed - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 +# prepare: +# name: Prepare +# if: needs.files-changed.outputs.webapp == 'true' +# needs: files-changed +# runs-on: ubuntu-latest +# steps: +# - name: Checkout code +# uses: actions/checkout@v3 - - name: Check translation files - run: | - scripts/translations/sort.sh - scripts/translations/missing-keys.sh +# - name: Check translation files +# run: | +# scripts/translations/sort.sh +# scripts/translations/missing-keys.sh - build_test_webapp: - name: Docker Build Test - Webapp - if: needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.webapp == 'true' - needs: [files-changed, prepare] - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 +# build_test_webapp: +# name: Docker Build Test - Webapp +# if: needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.webapp == 'true' +# needs: [files-changed, prepare] +# runs-on: ubuntu-latest +# steps: +# - name: Checkout code +# uses: actions/checkout@v3 - - name: Webapp | Build 'test' image - run: | - docker build --target test -t "ocelotsocialnetwork/webapp:test" webapp/ - docker save "ocelotsocialnetwork/webapp:test" > /tmp/webapp.tar +# - name: Webapp | Build 'test' image +# run: | +# docker build --target test -t "ocelotsocialnetwork/webapp:test" webapp/ +# docker save "ocelotsocialnetwork/webapp:test" > /tmp/webapp.tar - - name: Cache docker image - uses: actions/cache/save@v3.3.1 - with: - path: /tmp/webapp.tar - key: ${{ github.run_id }}-webapp-cache +# - name: Cache docker image +# uses: actions/cache/save@v3.3.1 +# with: +# path: /tmp/webapp.tar +# key: ${{ github.run_id }}-webapp-cache - lint_webapp: - name: Lint Webapp - if: needs.files-changed.outputs.webapp == 'true' - needs: files-changed - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 +# lint_webapp: +# name: Lint Webapp +# if: needs.files-changed.outputs.webapp == 'true' +# needs: files-changed +# runs-on: ubuntu-latest +# steps: +# - name: Checkout code +# uses: actions/checkout@v3 - - name: webapp | Lint - run: cd webapp && yarn && yarn run lint +# - name: webapp | Lint +# run: cd webapp && yarn && yarn run lint - unit_test_webapp: - name: Unit Tests - Webapp - if: needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.webapp == 'true' - needs: [files-changed, build_test_webapp] - runs-on: ubuntu-latest - permissions: - checks: write - steps: - - name: Checkout code - uses: actions/checkout@v3 +# unit_test_webapp: +# name: Unit Tests - Webapp +# if: needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.webapp == 'true' +# needs: [files-changed, build_test_webapp] +# runs-on: ubuntu-latest +# permissions: +# checks: write +# steps: +# - name: Checkout code +# uses: actions/checkout@v3 - - name: Restore webapp cache - uses: actions/cache/restore@v3.3.1 - with: - path: /tmp/webapp.tar - key: ${{ github.run_id }}-webapp-cache +# - name: Restore webapp cache +# uses: actions/cache/restore@v3.3.1 +# with: +# path: /tmp/webapp.tar +# key: ${{ github.run_id }}-webapp-cache - - name: Load Docker Image - run: docker load < /tmp/webapp.tar +# - name: Load Docker Image +# run: docker load < /tmp/webapp.tar - - name: Copy env files - run: | - cp webapp/.env.template webapp/.env - cp backend/.env.template backend/.env +# - name: Copy env files +# run: | +# cp webapp/.env.template webapp/.env +# cp backend/.env.template backend/.env - - name: backend | docker-compose - run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps webapp +# - name: backend | docker-compose +# run: docker-compose -f docker-compose.yml -f docker-compose.test.yml up --detach --no-deps webapp - - name: webapp | Unit tests incl. coverage check - run: docker-compose exec -T webapp yarn test +# - name: webapp | Unit tests incl. coverage check +# run: docker-compose exec -T webapp yarn test - cleanup: - name: Cleanup - if: (needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.webapp == 'true') || success() - needs: [files-changed, unit_test_webapp] - runs-on: ubuntu-latest - continue-on-error: true - steps: - - name: Delete cache - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh extension install actions/gh-actions-cache - KEY="${{ github.run_id }}-webapp-cache" - gh actions-cache delete $KEY -R Ocelot-Social-Community/Ocelot-Social --confirm +# cleanup: +# name: Cleanup +# if: (needs.files-changed.outputs.docker == 'true' || needs.files-changed.outputs.webapp == 'true') || success() +# needs: [files-changed, unit_test_webapp] +# runs-on: ubuntu-latest +# continue-on-error: true +# steps: +# - name: Delete cache +# env: +# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# run: | +# gh extension install actions/gh-actions-cache +# KEY="${{ github.run_id }}-webapp-cache" +# gh actions-cache delete $KEY -R Ocelot-Social-Community/Ocelot-Social --confirm