name: Build on: push: branches: - main pull_request: branches: - main jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Get changed files id: changed-files uses: tj-actions/changed-files@v14.1 with: fetch-depth: 2 files: | go.* **/*.go integration_test/ config-example.yaml - name: Setup Go if: steps.changed-files.outputs.any_changed == 'true' uses: actions/setup-go@v2 with: go-version: "1.17" - name: Install dependencies if: steps.changed-files.outputs.any_changed == 'true' run: | go version sudo apt update sudo apt install -y make - name: Run build if: steps.changed-files.outputs.any_changed == 'true' run: make build - uses: actions/upload-artifact@v2 if: steps.changed-files.outputs.any_changed == 'true' with: name: headscale-linux path: headscale