From 2164ff6a87dc542bff012f6467f74418d5813249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gast=C3=B3n=20Fournier?= Date: Tue, 5 Dec 2023 11:21:03 +0100 Subject: [PATCH] chore: require both build and test before merge (#5545) ## About the changes Some of our PRs such as #5538 merged without passing the tests. This is because we were running tests in a different workflow that's not mandatory to pass before we merge. With this, we remove duplicated work (we were executing build:backend in two different workflows) and we enforce our PRs to pass tests before merging --- .github/workflows/build_prs.yaml | 26 +++++++++++ .github/workflows/build_prs_test_report.yaml | 46 -------------------- 2 files changed, 26 insertions(+), 46 deletions(-) delete mode 100644 .github/workflows/build_prs_test_report.yaml diff --git a/.github/workflows/build_prs.yaml b/.github/workflows/build_prs.yaml index 18a8ba2d20..5aef6a30c0 100644 --- a/.github/workflows/build_prs.yaml +++ b/.github/workflows/build_prs.yaml @@ -5,10 +5,25 @@ on: paths-ignore: - frontend/** - website/** + - coverage/** jobs: build: runs-on: ubuntu-latest + services: + # Label used to access the service container + postgres: + # Docker Hub image + image: postgres + # Provide the password for postgres + env: + POSTGRES_PASSWORD: postgres + POSTGRES_INITDB_ARGS: "--no-sync" + # Set health checks to wait until postgres has started + ports: + - 5432:5432 + options: >- + --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 strategy: matrix: @@ -23,3 +38,14 @@ jobs: - run: yarn install --frozen-lockfile --ignore-scripts - run: yarn lint - run: yarn build:backend + - run: yarn test:report + env: + CI: true + TEST_DATABASE_URL: postgres://postgres:postgres@localhost:5432/postgres + DATABASE_URL: postgres://postgres:postgres@localhost:5432/postgres + - name: Upload test report to build # Done this way since external PRs would not be able to write the check. See https://github.com/marketplace/actions/test-reporter#recommended-setup-for-public-repositories + uses: actions/upload-artifact@v3 + if: success() || failure() + with: + name: test-results + path: ./reports/jest-junit.xml diff --git a/.github/workflows/build_prs_test_report.yaml b/.github/workflows/build_prs_test_report.yaml deleted file mode 100644 index dc32b625d1..0000000000 --- a/.github/workflows/build_prs_test_report.yaml +++ /dev/null @@ -1,46 +0,0 @@ -name: TestReport -on: - pull_request: - paths-ignore: - - website/** - - coverage/** - -jobs: - testreport: - runs-on: ubuntu-latest - services: - # Label used to access the service container - postgres: - # Docker Hub image - image: postgres - # Provide the password for postgres - env: - POSTGRES_PASSWORD: postgres - POSTGRES_INITDB_ARGS: "--no-sync" - # Set health checks to wait until postgres has started - ports: - - 5432:5432 - options: >- - --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 - - - steps: - - uses: actions/checkout@v4 - - name: Use Node.js 18 - uses: actions/setup-node@v3 - with: - node-version: 18.x - cache: 'yarn' - - run: yarn install --frozen-lockfile --ignore-scripts - - run: yarn build:backend - - run: yarn test:report - env: - CI: true - TEST_DATABASE_URL: postgres://postgres:postgres@localhost:5432/postgres - DATABASE_URL: postgres://postgres:postgres@localhost:5432/postgres - - name: Upload test report to build # Done this way since external PRs would not be able to write the check. See https://github.com/marketplace/actions/test-reporter#recommended-setup-for-public-repositories - uses: actions/upload-artifact@v3 - if: success() || failure() - with: - name: test-results - path: ./reports/jest-junit.xml