Continuous integration #321
This file contains 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: Continuous integration | |
on: | |
push: | |
branches: main | |
pull_request: | |
branches: main | |
workflow_dispatch: # allows manual triggering | |
schedule: | |
- cron: '1 11 * * *' | |
env: | |
# Bump this number to invalidate the GH actions cache | |
cache-version: 0 | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} | |
jobs: | |
test-nixpkgs: | |
name: Build & Test - Nixpkgs | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
ghc-version: ["ghc_8_10_7", "ghc_9_0_2", "ghc_9_2_5", "ghc_9_4_5"] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Mount Bazel cache | |
uses: actions/cache@v3 | |
with: | |
path: ~/repo-cache | |
key: repo-cache-${{ runner.os }}-nixpkgs-${{ env.cache-version }} | |
- uses: cachix/install-nix-action@v24 | |
with: | |
nix_path: nixpkgs=./nixpkgs.nix | |
- uses: tweag/configure-bazel-remote-cache-auth@v0 | |
with: | |
buildbuddy_api_key: ${{ secrets.BUILDBUDDY_API_KEY }} | |
bazelrc_path: .bazelrc.local | |
- name: Configure | |
run: | | |
cat >>.bazelrc.local <<EOF | |
build --host_platform=@io_tweag_rules_nixpkgs//nixpkgs/platforms:host | |
build --config=remote-cache | |
build --repository_cache=~/repo-cache/ | |
EOF | |
ln -s ../.bazelrc.local example/.bazelrc.local | |
ln -s ../../.bazelrc.local tests/alternative-deps/.bazelrc.local | |
- name: Build & test himportscan | |
uses: tweag/run-nix-shell@v0 | |
with: | |
run: bazel test //himportscan:tasty --config=${{ matrix.ghc-version }} | |
- name: Build & run gazelle | |
uses: tweag/run-nix-shell@v0 | |
with: | |
working-directory: example | |
run: bazel run //:gazelle --config=${{ matrix.ghc-version }} | |
- name: Build & run gazelle fix | |
uses: tweag/run-nix-shell@v0 | |
with: | |
working-directory: example | |
run: bazel run //:gazelle --config=${{ matrix.ghc-version }} -- fix | |
- name: Build & test generated rules | |
uses: tweag/run-nix-shell@v0 | |
with: | |
working-directory: example | |
run: bazel test //... --config=${{ matrix.ghc-version }} | |
- name: Build & run gazelle with alternative dependencies | |
uses: tweag/run-nix-shell@v0 | |
with: | |
working-directory: tests/alternative-deps | |
run: bazel run //:gazelle --config=${{ matrix.ghc-version }} | |
- name: Test for buildifier suggestions | |
uses: tweag/run-nix-shell@v0 | |
with: | |
run: bazel run //:buildifier-diff | |
all_ci_tests: | |
runs-on: ubuntu-latest | |
needs: | |
- test-nixpkgs | |
if: ${{ always() }} | |
steps: | |
- uses: cgrindel/gha_join_jobs@794a2d117251f22607f1aab937d3fd3eaaf9a2f5 # v1 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} |