From 204d14ae6438d15b3de8c4e5c2fe87c2937d7862 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Wed, 2 Aug 2023 23:17:03 -0300 Subject: [PATCH] build: release nightly every Thursday (#4211) closes #3501 --- .github/workflows/nightly.yml | 69 +++++++++++++++++++++++++++++++++++ .goreleaser-nightly.yaml | 11 ++++++ .goreleaser.yaml | 32 ++++++++-------- 3 files changed, 96 insertions(+), 16 deletions(-) create mode 100644 .github/workflows/nightly.yml create mode 100644 .goreleaser-nightly.yaml diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml new file mode 100644 index 000000000..96e30eba7 --- /dev/null +++ b/.github/workflows/nightly.yml @@ -0,0 +1,69 @@ +name: release + +on: + workflow_dispatch: + schedule: + - cron: 0 0 * * 4 + +permissions: + contents: write + id-token: write + packages: write + +jobs: + goreleaser: + runs-on: ubuntu-latest + env: + DOCKER_CLI_EXPERIMENTAL: "enabled" + steps: + - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3 + with: + fetch-depth: 0 + - uses: arduino/setup-task@e26d8975574116b0097a1161e0fe16ba75d84c1c # v1 + with: + version: 3.x + repo-token: ${{ secrets.GITHUB_TOKEN }} + - uses: docker/setup-qemu-action@2b82ce82d56a2a04d2637cd93a637ae1b359c0a7 # v2 + - uses: docker/setup-buildx-action@4c0219f9ac95b02789c1075625400b2acbff50b1 # v2 + - name: setup-snapcraft + # FIXME: the mkdirs are a hack for https://github.com/goreleaser/goreleaser/issues/1715 + run: | + sudo apt-get update + sudo apt-get -yq --no-install-suggests --no-install-recommends install snapcraft + mkdir -p $HOME/.cache/snapcraft/download + mkdir -p $HOME/.cache/snapcraft/stage-packages + - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753 # v4 + with: + go-version: stable + - uses: sigstore/cosign-installer@v3.1.1 + - uses: anchore/sbom-action/download-syft@v0.14.3 + - uses: crazy-max/ghaction-upx@v2 + with: + install-only: true + - uses: cachix/install-nix-action@v22 + with: + github_access_token: ${{ secrets.GITHUB_TOKEN }} + - name: dockerhub-login + if: startsWith(github.ref, 'refs/tags/v') + uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: ghcr-login + if: startsWith(github.ref, 'refs/tags/v') + uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: snapcraft-login + if: startsWith(github.ref, 'refs/tags/v') + run: snapcraft login --with <(echo "${{ secrets.SNAPCRAFT_LOGIN }}") + - uses: goreleaser/goreleaser-action@v4 + with: + distribution: goreleaser-pro + version: nightly + args: release --clean --nightly -f .goreleaser-nightly.yaml + env: + GITHUB_TOKEN: ${{ secrets.GH_PAT }} + GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} diff --git a/.goreleaser-nightly.yaml b/.goreleaser-nightly.yaml new file mode 100644 index 000000000..1ec23c7b9 --- /dev/null +++ b/.goreleaser-nightly.yaml @@ -0,0 +1,11 @@ +# yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json +# vim: set ts=2 sw=2 tw=0 fo=jcroql + +nightly: + publish_release: true + keep_single_release: true + name_template: "{{ incminor .Version }}-nightly" + +includes: + - from_file: + path: ./.goreleaser.yaml diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 1cf6f0c8b..aefb28079 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -90,8 +90,8 @@ changelog: dockers: - image_templates: - - "goreleaser/goreleaser:{{ .Tag }}-amd64" - - "ghcr.io/goreleaser/goreleaser:{{ .Tag }}-amd64" + - "goreleaser/goreleaser:v{{ .Version }}-amd64" + - "ghcr.io/goreleaser/goreleaser:v{{ .Version }}-amd64" dockerfile: Dockerfile use: buildx build_flag_templates: @@ -110,8 +110,8 @@ dockers: extra_files: - scripts/entrypoint.sh - image_templates: - - "goreleaser/goreleaser:{{ .Tag }}-arm64" - - "ghcr.io/goreleaser/goreleaser:{{ .Tag }}-arm64" + - "goreleaser/goreleaser:v{{ .Version }}-arm64" + - "ghcr.io/goreleaser/goreleaser:v{{ .Version }}-arm64" dockerfile: Dockerfile use: buildx build_flag_templates: @@ -132,22 +132,22 @@ dockers: - scripts/entrypoint.sh docker_manifests: - - name_template: "goreleaser/goreleaser:{{ .Tag }}" + - name_template: "goreleaser/goreleaser:v{{ .Version }}" image_templates: - - "goreleaser/goreleaser:{{ .Tag }}-amd64" - - "goreleaser/goreleaser:{{ .Tag }}-arm64" - - name_template: "ghcr.io/goreleaser/goreleaser:{{ .Tag }}" + - "goreleaser/goreleaser:v{{ .Version }}-amd64" + - "goreleaser/goreleaser:v{{ .Version }}-arm64" + - name_template: "ghcr.io/goreleaser/goreleaser:v{{ .Version }}" image_templates: - - "ghcr.io/goreleaser/goreleaser:{{ .Tag }}-amd64" - - "ghcr.io/goreleaser/goreleaser:{{ .Tag }}-arm64" - - name_template: "goreleaser/goreleaser:latest" + - "ghcr.io/goreleaser/goreleaser:v{{ .Version }}-amd64" + - "ghcr.io/goreleaser/goreleaser:v{{ .Version }}-arm64" + - name_template: "{{ if not .IsNightly }}goreleaser/goreleaser:latest{{ end }}" image_templates: - - "goreleaser/goreleaser:{{ .Tag }}-amd64" - - "goreleaser/goreleaser:{{ .Tag }}-arm64" - - name_template: "ghcr.io/goreleaser/goreleaser:latest" + - "goreleaser/goreleaser:v{{ .Version }}-amd64" + - "goreleaser/goreleaser:v{{ .Version }}-arm64" + - name_template: "{{ if not .IsNightly }}ghcr.io/goreleaser/goreleaser:latest{{ end }}" image_templates: - - "ghcr.io/goreleaser/goreleaser:{{ .Tag }}-amd64" - - "ghcr.io/goreleaser/goreleaser:{{ .Tag }}-arm64" + - "ghcr.io/goreleaser/goreleaser:v{{ .Version }}-amd64" + - "ghcr.io/goreleaser/goreleaser:v{{ .Version }}-arm64" archives: - name_template: >-