diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..86082d3 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,16 @@ +version: 2 + +updates: + - package-ecosystem: gomod + directory: / + labels: + - dependencies + schedule: + interval: daily + + - package-ecosystem: "github-actions" + directory: "/" + labels: + - dependencies + schedule: + interval: "daily" diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml new file mode 100644 index 0000000..17a6e37 --- /dev/null +++ b/.github/workflows/go.yml @@ -0,0 +1,47 @@ +name: Go + +on: + push: + branches: + - "master" + pull_request: + branches: + - "master" + +jobs: + build: + name: Build + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + go: ["1.21.x"] + + steps: + - name: Set up Go ${{ matrix.go }} + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go }} + id: go + + - name: Check out code into the Go module directory + uses: actions/checkout@v4.1.1 + + - uses: actions/cache@v4 + with: + path: | + ~/go/pkg/mod + ~/.cache/go-build + key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go-${{ matrix.go-version }}- + + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v5 + with: + # either 'goreleaser' (default) or 'goreleaser-pro' + distribution: goreleaser + version: latest + args: release --snapshot + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..24f8b9e --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,68 @@ +name: Go + +on: + push: + tags: + - "v**" + +jobs: + build: + name: Build + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + go: ["1.21.x"] + + steps: + - name: Set up Go ${{ matrix.go }} + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go }} + id: go + + - name: Check out code into the Go module directory + uses: actions/checkout@v4.1.1 + + - uses: actions/cache@v4 + with: + path: | + ~/go/pkg/mod + ~/.cache/go-build + key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go-${{ matrix.go-version }}- + + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v5 + with: + # either 'goreleaser' (default) or 'goreleaser-pro' + distribution: goreleaser + version: latest + args: release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push Docker image to docker.io + uses: mr-smithers-excellent/docker-build-push@v6.3 + with: + registry: docker.io + image: sophos/nginx-vtx-exporter + multiPlatform: true + addLatest: true + directory: . + dockerfile: Dockerfile + username: ${{ secrets.DOCKER_USER }} + password: ${{ secrets.DOCKER_PASS }} + + - name: Build and push Docker image to ghcr.io + uses: mr-smithers-excellent/docker-build-push@v6.3 + with: + registry: ghcr.io + image: nginx-vtx-exporter + multiPlatform: true + addLatest: true + directory: . + dockerfile: Dockerfile + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }}