Skip to content

Perform expired versions cleanup in a single transaction (#275) #13

Perform expired versions cleanup in a single transaction (#275)

Perform expired versions cleanup in a single transaction (#275) #13

Workflow file for this run

---
name: release
on:
push:
tags:
- 'v*'
jobs:
buf:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: bufbuild/buf-setup-action@v1
- run: buf lint .
hadolint-cli:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: dockerfiles/Dockerfile.cli
hadolint-exporter:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: dockerfiles/Dockerfile.exporter
hadolint-gc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: dockerfiles/Dockerfile.gc
hadolint-manager:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: dockerfiles/Dockerfile.manager
hadolint-migrator:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: dockerfiles/Dockerfile.migrator
hadolint-publisher:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: dockerfiles/Dockerfile.publisher
hadolint-seeder:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: dockerfiles/Dockerfile.seeder
markdownlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: articulate/actions-markdownlint@v1
golangci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.23.x'
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
version: "23.x"
- name: Install dependencies
run: go mod download
- name: Install protoc-gen-go
run: go install github.com/golang/protobuf/protoc-gen-go@latest
- name: Install protoc-gen-go-grpc
run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
- name: Generate the code
run: go generate -v ./...
- name: golangci-lint
uses: golangci/golangci-lint-action@v6
with:
only-new-issues: false
working-directory: .
unittests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.23.x'
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
version: "23.x"
- name: Install dependencies
run: go mod download
- name: Install protoc-gen-go
run: go install github.com/golang/protobuf/protoc-gen-go@latest
- name: Install protoc-gen-go-grpc
run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
- name: Generate the code
run: go generate -v ./...
- name: Test with the Go CLI
run: go test ./...
- name: Build
run: go build -v ./...
build:
runs-on: ubuntu-latest
permissions:
contents: write
packages: write
needs:
- buf
- hadolint-cli
- hadolint-exporter
- hadolint-gc
- hadolint-manager
- hadolint-migrator
- hadolint-publisher
- hadolint-seeder
- markdownlint
- golangci
- unittests
steps:
- name: Define build timestamp
id: timestamp
run: echo "::set-output name=now::$(date -u +'%Y%m%d%H%M%S')"
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.23.x'
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
version: "23.x"
- name: Install dependencies
run: go mod download
- name: Install protoc-gen-go
run: go install github.com/golang/protobuf/protoc-gen-go@latest
- name: Install protoc-gen-go-grpc
run: go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
- name: Generate the code
run: go generate -v ./...
- name: Build & Publish release release
uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
version: '~> v2'
args: release --clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push cli container image
uses: docker/build-push-action@v5
with:
context: .
file: ./dockerfiles/Dockerfile.cli
platforms: amd64
push: true
tags: |
ghcr.io/${{ github.repository }}/cli:latest
ghcr.io/${{ github.repository }}/cli:${{ github.ref_name }}
ghcr.io/${{ github.repository }}/cli:${{ github.ref_name }}-${{ steps.timestamp.outputs.now }}
outputs: type=image,name=ghcr.io/${{ github.repository }}/cli,annotation-index.org.opencontainers.image.description=${{ github.repository }}
- name: Build and push exporter container image
uses: docker/build-push-action@v5
with:
context: .
file: ./dockerfiles/Dockerfile.exporter
platforms: amd64
push: true
tags: |
ghcr.io/${{ github.repository }}/exporter:latest
ghcr.io/${{ github.repository }}/exporter:${{ github.ref_name }}
ghcr.io/${{ github.repository }}/exporter:${{ github.ref_name }}-${{ steps.timestamp.outputs.now }}
outputs: type=image,name=ghcr.io/${{ github.repository }}/exporter,annotation-index.org.opencontainers.image.description=${{ github.repository }}
- name: Build and push gc container image
uses: docker/build-push-action@v5
with:
context: .
file: ./dockerfiles/Dockerfile.gc
platforms: amd64
push: true
tags: |
ghcr.io/${{ github.repository }}/gc:latest
ghcr.io/${{ github.repository }}/gc:${{ github.ref_name }}
ghcr.io/${{ github.repository }}/gc:${{ github.ref_name }}-${{ steps.timestamp.outputs.now }}
outputs: type=image,name=ghcr.io/${{ github.repository }}/gc,annotation-index.org.opencontainers.image.description=${{ github.repository }}
- name: Build and push manager container image
uses: docker/build-push-action@v5
with:
context: .
file: ./dockerfiles/Dockerfile.manager
platforms: amd64
push: true
tags: |
ghcr.io/${{ github.repository }}/manager:latest
ghcr.io/${{ github.repository }}/manager:${{ github.ref_name }}
ghcr.io/${{ github.repository }}/manager:${{ github.ref_name }}-${{ steps.timestamp.outputs.now }}
outputs: type=image,name=ghcr.io/${{ github.repository }}/manager,annotation-index.org.opencontainers.image.description=${{ github.repository }}
- name: Build and push migrator container image
uses: docker/build-push-action@v5
with:
context: .
file: ./dockerfiles/Dockerfile.migrator
platforms: amd64
push: true
tags: |
ghcr.io/${{ github.repository }}/migrator:latest
ghcr.io/${{ github.repository }}/migrator:${{ github.ref_name }}
ghcr.io/${{ github.repository }}/migrator:${{ github.ref_name }}-${{ steps.timestamp.outputs.now }}
outputs: type=image,name=ghcr.io/${{ github.repository }}/migrator,annotation-index.org.opencontainers.image.description=${{ github.repository }}
- name: Build and push publisher container image
uses: docker/build-push-action@v5
with:
context: .
file: ./dockerfiles/Dockerfile.publisher
platforms: amd64
push: true
tags: |
ghcr.io/${{ github.repository }}/publisher:latest
ghcr.io/${{ github.repository }}/publisher:${{ github.ref_name }}
ghcr.io/${{ github.repository }}/publisher:${{ github.ref_name }}-${{ steps.timestamp.outputs.now }}
outputs: type=image,name=ghcr.io/${{ github.repository }}/publisher,annotation-index.org.opencontainers.image.description=${{ github.repository }}
- name: Build and push seeder container image
uses: docker/build-push-action@v5
with:
context: .
file: ./dockerfiles/Dockerfile.seeder
platforms: amd64
push: true
tags: |
ghcr.io/${{ github.repository }}/seeder:latest
ghcr.io/${{ github.repository }}/seeder:${{ github.ref_name }}
ghcr.io/${{ github.repository }}/seeder:${{ github.ref_name }}-${{ steps.timestamp.outputs.now }}
outputs: type=image,name=ghcr.io/${{ github.repository }}/seeder,annotation-index.org.opencontainers.image.description=${{ github.repository }}