Use golang for cross-platform build scripting #538
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: "Validations" | |
on: | |
merge_group: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- main | |
jobs: | |
Static-Analysis: | |
# Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline | |
name: "Static analysis" | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 #v4.2.1 | |
- name: Bootstrap environment | |
uses: ./.github/actions/bootstrap | |
- name: Run static analysis | |
run: make static-analysis | |
Unit-Test: | |
# Note: changing this job name requires making the same update in the .github/workflows/release.yaml pipeline | |
name: "Unit tests" | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 #v4.2.1 | |
- name: Bootstrap environment | |
uses: ./.github/actions/bootstrap | |
- name: Build cache key for test-fixture | |
run: make fixtures-fingerprint | |
- name: Restore test-fixture cache | |
id: unit-fixture-cache | |
uses: actions/cache@3624ceb22c1c5a301c8db4169662070a689d9ea8 #v4.1.1 | |
with: | |
path: internal/git/test-fixtures/repos | |
key: ${{ runner.os }}-unit-fixture-cache-${{ hashFiles( 'internal/git/test-fixtures/cache.fingerprint' ) }} | |
- name: Run unit tests | |
run: make unit | |
Build-Snapshot-Artifacts: | |
name: "Build snapshot artifacts" | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 #v4.2.1 | |
- name: Bootstrap environment | |
uses: ./.github/actions/bootstrap | |
with: | |
# why have another build cache key? We don't want unit/integration/etc test build caches to replace | |
# the snapshot build cache, which includes builds for all OSs and architectures. As long as this key is | |
# unique from the build-cache-key-prefix in other CI jobs, we should be fine. | |
# | |
# note: ideally this value should match what is used in release (just to help with build times). | |
build-cache-key-prefix: "snapshot" | |
- name: Build snapshot artifacts | |
run: make snapshot |