fix(deps): update module golang.org/x/oauth2 to v0.31.0 - autoclosed #38
This file contains hidden or 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
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - "main" | |
| pull_request: | |
| branches: | |
| - "main" | |
| release: | |
| types: [published] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| IMAGE_NAME: ghcr.io/brpaz/github-notifications-cleaner | |
| TEST_IMAGE_TAG: ghcr.io/brpaz/github-notifications-cleaner:test | |
| GOLANGCI_LINT_VERSION: v1.64.5 | |
| jobs: | |
| lint-go: | |
| name: Lint Go code | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: "go.mod" | |
| cache: false | |
| - name: Lint | |
| uses: golangci/golangci-lint-action@v6 | |
| with: | |
| version: ${{ env.GOLANGCI_LINT_VERSION }} | |
| lint-docker: | |
| name: Lint Dockerfile | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Lint Dockerfile | |
| uses: hadolint/hadolint-action@v3.1.0 | |
| with: | |
| dockerfile: Dockerfile | |
| test: | |
| name: Unit tests | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| actions: read | |
| checks: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: "go.mod" | |
| - name: Setup gotestsum | |
| uses: autero1/action-gotestsum@v2.0.0 | |
| with: | |
| gotestsum_version: 1.11.0 | |
| - name: Install go-test-report | |
| run: | | |
| go install github.com/vakenbolt/go-test-report@latest | |
| go-test-report version | |
| - name: Run tests | |
| id: test-run | |
| continue-on-error: true | |
| run: | | |
| gotestsum \ | |
| --format testname \ | |
| --junitfile test-result.xml \ | |
| --jsonfile test-result.json \ | |
| -- -coverprofile=coverage.out -covermode=atomic ./... | |
| - name: Generate test html report | |
| run: | | |
| if [ -f ${REPORT_JSON_FILE} ]; then | |
| cat ${REPORT_JSON_FILE} | go-test-report \ | |
| -o test-result.html | |
| fi | |
| env: | |
| REPORT_JSON_FILE: test-result.json | |
| - name: Test Report | |
| uses: dorny/test-reporter@v1 | |
| with: | |
| name: Unit tests | |
| path: test-result.xml | |
| reporter: java-junit | |
| - name: Upload HTML test result artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-result | |
| path: test-result.html | |
| - name: Upload coverage reports to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: ./coverage.out | |
| slug: brpaz/github-notifications-cleaner | |
| - name: Set appropriate job status | |
| run: | | |
| if ${{ steps.test-run.outcome }} == 'failure'; then | |
| exit 1 | |
| fi | |
| build-binaries: | |
| name: Build binaries | |
| runs-on: ubuntu-latest | |
| needs: [lint-go, lint-docker, test] | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: "go.mod" | |
| cache: true | |
| - name: Publish release (snapshot) | |
| uses: goreleaser/goreleaser-action@v6 | |
| if: github.event_name != 'release' | |
| with: | |
| args: release --snapshot --clean | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Publish release (release) | |
| uses: goreleaser/goreleaser-action@v6 | |
| if: github.event_name == 'release' | |
| with: | |
| args: release --snapshot --clean | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Upload release artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: release-artifacts | |
| path: dist/ | |
| build-docker: | |
| name: Build docker | |
| runs-on: ubuntu-latest | |
| needs: [lint-go, lint-docker, test] | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Docker meta | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: | | |
| ${{ env.IMAGE_NAME }} | |
| tags: | | |
| type=ref,event=branch | |
| type=ref,event=pr | |
| type=semver,pattern={{version}} | |
| type=semver,pattern={{major}}.{{minor}} | |
| type=semver,pattern={{major}} | |
| type=sha | |
| - name: Build test image | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: . | |
| load: true | |
| tags: ${{ env.TEST_IMAGE_TAG }} | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max | |
| - name: Run tests | |
| uses: brpaz/structure-tests-action@1.4.0 | |
| with: | |
| image: ${{ env.TEST_IMAGE_TAG }} | |
| configFile: structure-test.yaml | |
| - name: Login to GitHub package registry | |
| uses: docker/login-action@v3 | |
| if: github.event_name != 'pull_request' | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build and push | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: . | |
| platforms: linux/amd64,linux/arm64 | |
| push: ${{ github.event_name != 'pull_request' }} | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max |