ci: validate docs (#263) #9
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
# ------------------------------------------------------------ | |
# Copyright (c) Project Copacetic authors. | |
# Licensed under the MIT License. | |
# ------------------------------------------------------------ | |
name: Build | |
on: | |
push: | |
branches: | |
- main | |
- release-* | |
tags: | |
- v* | |
paths-ignore: | |
- "**.md" | |
- "website/**" | |
- "docs/**" | |
- "demo/**" | |
pull_request: | |
branches: | |
- main | |
- release-* | |
paths-ignore: | |
- "**.md" | |
- "website/**" | |
- "docs/**" | |
- "demo/**" | |
workflow_dispatch: | |
env: | |
TRIVY_VERSION: 0.44.0 | |
BUILDKIT_VERSION: 0.12.0 | |
jobs: | |
unit-test: | |
name: Unit Test | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
permissions: read-all | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@8ca2b8b2ece13480cda6dacd3511b49857a23c09 # v2.3.1 | |
with: | |
egress-policy: audit | |
- name: Check out code | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
- name: Unit test | |
shell: bash | |
env: | |
CODECOV_OPTS: "-coverprofile=coverage.txt -covermode=atomic" | |
run: make test | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # v3.1.4 | |
build: | |
name: Build | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 5 | |
permissions: | |
packages: write | |
contents: read | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@8ca2b8b2ece13480cda6dacd3511b49857a23c09 # v2.3.1 | |
with: | |
egress-policy: audit | |
- name: Check out code | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
- name: Build copa | |
shell: bash | |
run: | | |
make build | |
make archive | |
- name: Upload copa to build artifacts | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 | |
with: | |
name: copa_edge_linux_amd64.tar.gz | |
path: dist/linux_amd64/release/copa_edge_linux_amd64.tar.gz | |
- name: Load test cases for patch testing | |
id: load-test-envs-matrix | |
shell: bash | |
run: echo "buildkitenvs=$(.github/workflows/scripts/buildkit-env-matrix.sh)" | tee -a "${GITHUB_OUTPUT}" | |
outputs: | |
buildkitenvs: ${{ steps.load-test-envs-matrix.outputs.buildkitenvs }} | |
test-patch: | |
needs: build | |
name: Test patch ${{ matrix.buildkit_mode }} | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
permissions: read-all | |
strategy: | |
fail-fast: false | |
matrix: | |
buildkit_mode: ${{fromJson(needs.build.outputs.buildkitenvs)}} | |
steps: | |
- name: Download copa from build artifacts | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: copa_edge_linux_amd64.tar.gz | |
- name: Check out code | |
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 | |
- name: Install required tools | |
shell: bash | |
run: .github/workflows/scripts/download-tooling.sh | |
- name: Download copa from build artifacts | |
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 | |
with: | |
name: copa_edge_linux_amd64.tar.gz | |
- name: Extract copa | |
shell: bash | |
run: | | |
tar xzf copa_edge_linux_amd64.tar.gz | |
./copa --version | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@2b82ce82d56a2a04d2637cd93a637ae1b359c0a7 # v2.2.0 | |
- name: Run functional test | |
shell: bash | |
run: | | |
set -eu -o pipefail | |
. .github/workflows/scripts/buildkitenvs/${{ matrix.buildkit_mode}} | |
go test -v ./integration --addr="${COPA_BUILDKIT_ADDR}" --copa="$(pwd)/copa" | |