name: build on: workflow_dispatch: push: branches: - 'master' tags: - 'v*' pull_request: env: DESTDIR: ./bin GO_VERSION: 1.16.7 jobs: validate: runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: target: - validate-vendor steps: - name: Checkout uses: actions/checkout@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Run run: | make ${{ matrix.target }} test: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: - ubuntu-20.04 - macOS-11 - windows-2022 steps: - name: Checkout uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: ${{ env.GO_VERSION }} cache: true - name: Install deps if: ${{ matrix.os == 'ubuntu-20.04' }} run: | sudo apt-get update sudo apt-get install -y dbus-x11 gnome-keyring libsecret-1-dev pass - name: Test run: | go test -short -v -coverprofile=./coverage.txt -covermode=atomic ./... go tool cover -func=./coverage.txt shell: bash - name: Upload coverage uses: codecov/codecov-action@v3 with: file: ./coverage.txt test-sandboxed: runs-on: ubuntu-20.04 steps: - name: Checkout uses: actions/checkout@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Test uses: docker/bake-action@v2 with: targets: test set: | *.cache-from=type=gha,scope=test *.cache-to=type=gha,scope=test,mode=max - name: Upload coverage uses: codecov/codecov-action@v3 with: file: ${{ env.DESTDIR }}//coverage.txt build: runs-on: ubuntu-20.04 steps: - name: Checkout uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Build uses: docker/bake-action@v2 with: targets: binaries set: | *.cache-from=type=gha,scope=build *.cache-to=type=gha,scope=build,mode=max - name: Move artifacts run: | mv ${{ env.DESTDIR }}/**/* ${{ env.DESTDIR }}/ - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: docker-credential-helpers path: ${{ env.DESTDIR }}/* if-no-files-found: error