#! Main CI Specification for DataHaven Repository name: CI on: workflow_dispatch: push: branches: - main - perm-* pull_request: branches: [main] permissions: contents: read packages: write concurrency: group: pr-checks-${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: # First Tier - Build the binary first build-operator: uses: ./.github/workflows/task-build-operator.yml # First Tier - Other parallel jobs ts-build: uses: ./.github/workflows/task-ts-build.yml ts-lint: uses: ./.github/workflows/task-ts-lint.yml unit-tests: uses: ./.github/workflows/task-rust-tests.yml contract-tests: uses: ./.github/workflows/task-foundry-tests.yml rust-lint: uses: ./.github/workflows/task-rust-lint.yml # Second Tier - Jobs that depend on operator build check-metadata: needs: [build-operator] uses: ./.github/workflows/task-check-metadata.yml with: binary-hash: ${{ needs.build-operator.outputs.binary-hash }} docker-build-ci: needs: [build-operator] uses: ./.github/workflows/task-docker-ci.yml secrets: inherit with: binary-hash: ${{ needs.build-operator.outputs.binary-hash }} docker-build-release: if: github.ref == 'refs/heads/main' uses: ./.github/workflows/task-docker-release.yml secrets: inherit moonwall-tests: needs: [build-operator] uses: ./.github/workflows/task-moonwall-tests.yml with: binary-hash: ${{ needs.build-operator.outputs.binary-hash }} # Third Tier - E2E tests depend on docker build e2e-tests: needs: [docker-build-ci] uses: ./.github/workflows/task-e2e.yml secrets: inherit with: image-tag: ${{ needs.docker-build-ci.outputs.image-tag }}