diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..2f999f6 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,53 @@ +name: Continuous Integration + +on: + pull_request: + push: + branches: + - main + schedule: + # Every day at 10:09 UTC. + - cron: '9 10 * * *' + workflow_dispatch: +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + tidy_and_test_matrix: + strategy: + fail-fast: false + matrix: + runner: [macos-12, ubuntu-22.04] + runs-on: ${{ matrix.runner }} + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: cgrindel/gha_set_up_bazel@v1 + with: + repo_name: credential-helper + - name: Execute Tests + shell: bash + run: bazelisk test //... + integration_test_matrix: + strategy: + fail-fast: false + matrix: + runner: [macos-12, ubuntu-22.04] + runs-on: ${{ matrix.runner }} + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: cgrindel/gha_set_up_bazel@v1 + with: + repo_name: credential-helper + - name: Execute Integration Tests + shell: bash + run: bazelisk test //:all_integration_tests + + all_ci_tests: + runs-on: ubuntu-22.04 + needs: [tidy_and_test_matrix, integration_test_matrix] + if: ${{ always() }} + steps: + - uses: cgrindel/gha_join_jobs@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }}