name: Build and test on: push: branches: [main] pull_request: branches: [main] permissions: contents: read jobs: build: name: Build runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: go.mod cache: true - name: Download dependencies run: go mod download - name: Build run: make build-ci lint: name: Lint runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: go.mod cache: true - name: Download dependencies run: go mod download - name: Lint uses: golangci/golangci-lint-action@v6 with: install-mode: goinstall version: v1.64.8 test: name: Test strategy: matrix: os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: go.mod cache: true - name: Download dependencies run: go mod download - name: Install Linux dependencies if: runner.os == 'Linux' run: | sudo apt-get update sudo apt-get install -y bubblewrap socat - name: Test run: make test-ci