name: Unit and Integration Tests on: [push, pull_request] permissions: contents: read jobs: build: strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - name: Check out code uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: 'go.mod' - name: Restore Go modules cache uses: actions/cache@v4 with: path: ~/go/pkg/mod key: go-${{ runner.os }}-${{ hashFiles('go.mod') }} restore-keys: | go-${{ runner.os }}- - name: Download dependencies run: go mod download - name: Run tests run: go test -race ./... - name: Build run: go build -v ./cmd/gh integration-tests: env: GH_TOKEN: ${{ github.token }} strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - name: Check out code uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: 'go.mod' - name: Build executable run: make - name: Run attestation command integration Tests run: ./test/integration/attestation-cmd/download-and-verify-package-attestation.sh