name: Release on: push: tags: - "[0-9]*" jobs: release: runs-on: ubuntu-latest defaults: run: shell: sh steps: - name: Install build tools run: apk add --no-cache git gcc musl-dev - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-go@v5 with: go-version: "1.26" - uses: actions/cache@v4 with: path: | ~/go/pkg/mod ~/.cache/go-build key: release-go-${{ hashFiles('go.sum') }} restore-keys: release-go- - name: Run GoReleaser uses: goreleaser/goreleaser-action@v7 with: distribution: goreleaser version: "~> v2" args: release --clean env: GORELEASER_FORCE_TOKEN: gitea GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }} GITEA_API_URL: http://gitea:3000/api/v1 docker: runs-on: docker-builder needs: [release] steps: - 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: Log in to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push uses: docker/build-push-action@v5 with: context: . push: true platforms: linux/amd64,linux/arm64 sbom: true provenance: mode=max tags: | lerkolabs/uptop:${{ github.ref_name }} lerkolabs/uptop:latest build-args: | VERSION=${{ github.ref_name }} COMMIT=${{ github.sha }} BUILD_DATE=${{ github.event.head_commit.timestamp }} - name: Update Docker Hub description uses: peter-evans/dockerhub-description@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} repository: lerkolabs/uptop - name: Cleanup Docker artifacts if: always() run: | docker image prune -f docker builder prune -f --keep-storage=2GB