incorporate pr comments #1416
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
tags: | |
- prod-* | |
- stage-* | |
branches: | |
- main | |
- staging | |
pull_request: | |
merge_group: | |
permissions: | |
contents: "read" | |
id-token: "write" | |
issues: "write" | |
pull-requests: "write" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
lint: | |
name: Run Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pre-commit/[email protected] | |
change-detection: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
pull-requests: read | |
outputs: | |
worker: ${{ steps.filter.outputs.worker }} | |
codecov-api: ${{ steps.filter.outputs.codecov-api }} | |
shared: ${{ steps.filter.outputs.shared }} | |
steps: | |
# Checking out is not necessary for PRs but it is otherwise | |
- uses: actions/checkout@v4 | |
if: ${{ github.event_name != 'pull_request' }} | |
with: | |
submodules: 'recursive' | |
- uses: dorny/paths-filter@v3 | |
id: filter | |
with: | |
filters: | | |
build-glue: &build-glue | |
- 'Makefile' | |
- 'docker/Makefile.docker' | |
- 'docker/Makefile.ci-tests' | |
- 'docker/Dockerfile.requirements' | |
- 'docker/Dockerfile.test-requirements' | |
- 'docker/Dockerfile' | |
- 'uv.lock' | |
- 'ci-tests.docker-compose.yml' | |
- '.github/workflows/ci-router.yml' | |
- '.github/workflows/_build-requirements.yml' | |
- '.github/workflows/_build-app.yml' | |
- '.github/workflows/_self-hosted.yml' | |
- '.github/workflows/_run-tests.yml' | |
shared: &shared | |
- *build-glue | |
- 'libs/shared/**' | |
- '.github/workflows/shared-ci.yml' | |
worker: | |
- *build-glue | |
- *shared | |
- 'apps/worker/**' | |
- '.github/workflows/worker-ci.yml' | |
codecov-api: | |
- *build-glue | |
- *shared | |
- 'apps/codecov-api/**' | |
- '.github/workflows/api-ci.yml' | |
reqs: | |
name: Build Requirements | |
uses: ./.github/workflows/_build-requirements.yml | |
secrets: inherit | |
api-ci: | |
name: API CI | |
needs: [change-detection, reqs] | |
uses: ./.github/workflows/api-ci.yml | |
secrets: inherit | |
with: | |
skip: ${{ needs.change-detection.outputs.codecov-api == 'false' }} | |
event_name: ${{ github.event_name }} | |
worker-ci: | |
name: Worker CI | |
needs: [change-detection, reqs] | |
uses: ./.github/workflows/worker-ci.yml | |
secrets: inherit | |
with: | |
skip: ${{ needs.change-detection.outputs.worker == 'false' }} | |
event_name: ${{ github.event_name }} | |
shared-ci: | |
name: Shared CI | |
needs: [change-detection, reqs] | |
uses: ./.github/workflows/shared-ci.yml | |
secrets: inherit | |
with: | |
skip: ${{ needs.change-detection.outputs.shared == 'false' }} | |
event_name: ${{ github.event_name }} | |
push-staging: | |
name: Push to staging | |
# We want to push to staging after the images have been built. We use `always()` | |
# to run this job even if tests failed. | |
needs: [reqs, worker-ci, api-ci] | |
if: ${{ github.event_name == 'push' && github.event.ref == 'refs/heads/staging' && github.repository_owner == 'codecov' && always()}} | |
uses: ./.github/workflows/push-stage.yml | |
secrets: inherit |