summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/docker-main.yml12
-rw-r--r--.github/workflows/release.yml57
-rw-r--r--version/gen/vgen.go3
3 files changed, 26 insertions, 46 deletions
diff --git a/.github/workflows/docker-main.yml b/.github/workflows/docker-main.yml
index fb8f8c32..92e51b54 100644
--- a/.github/workflows/docker-main.yml
+++ b/.github/workflows/docker-main.yml
@@ -17,7 +17,7 @@ jobs:
id: buildx
uses: docker/setup-buildx-action@v3.10.0
with:
- version: v0.14.1
+ version: v0.19.3
driver-opts: |
image=moby/buildkit:buildx-stable-1
network=host
@@ -38,10 +38,10 @@ jobs:
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build & Push (latest tag)
run: |
- export srcrepo=${{ github.repository}}
+ export srcrepo=ghcr.io/${{ github.repository}}
make docker-multi COMMIT=${{ github.sha }} DOCKER_REPO=${srcrepo} BUILDX_ACTION=--push
- docker buildx imagetools create -t gomplate/gomplate:latest ${srcrepo}:latest
- docker buildx imagetools create -t gomplate/gomplate:alpine ${srcrepo}:alpine
- docker buildx imagetools create -t ghcr.io/${srcrepo}:latest ${srcrepo}:latest
- docker buildx imagetools create -t ghcr.io/${srcrepo}:alpine ${srcrepo}:alpine
+ for repo in "gomplate/gomplate" "hairyhenderson/gomplate"; do
+ docker buildx imagetools create -t ${repo}:latest ${srcrepo}:latest
+ docker buildx imagetools create -t ${repo}:alpine ${srcrepo}:alpine
+ done
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index da6b56b1..da673eca 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -26,6 +26,7 @@ jobs:
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.PRIVATE_KEY }}
+ - uses: actions/checkout@v4
- name: install lab
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
@@ -33,9 +34,10 @@ jobs:
gh release download --repo zaquestion/lab v0.25.1 -p lab_0.25.1_linux_amd64.tar.gz
tar -xzf lab_0.25.1_linux_amd64.tar.gz
./lab --version
- - uses: actions/checkout@v4
- name: Retrieve release artifacts
id: artifacts
+ env:
+ GH_TOKEN: ${{ steps.app-token.outputs.token }}
run: |
# need the checksums
gh release download ${TAG_NAME} --skip-existing -p "${TAG_NAME}.sha*"
@@ -46,8 +48,6 @@ jobs:
# need gomplate to template the APKBUILD!
gh release download ${TAG_NAME} --skip-existing -p gomplate_linux-amd64
chmod 755 gomplate_linux-amd64
- env:
- GH_TOKEN: ${{ steps.app-token.outputs.token }}
- name: checkout alpinelinux/aports
run: |
set -ex
@@ -124,23 +124,15 @@ jobs:
driver-opts: |
image=moby/buildkit:buildx-stable-1
network=host
- - name: Available platforms
- run: echo {{ `${{ steps.buildx.outputs.platforms }}` }}
- - run: docker info && docker version
- uses: actions/checkout@v4
with:
fetch-depth: 0
- - uses: actions/create-github-app-token@v1
- id: app-token
- with:
- app-id: ${{ vars.APP_ID }}
- private-key: ${{ secrets.PRIVATE_KEY }}
- name: Login to GHCR
uses: docker/login-action@v3.3.0
with:
registry: ghcr.io
username: ${{ github.actor }}
- password: ${{ steps.app-token.outputs.token }}
+ password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to DockerHub
uses: docker/login-action@v3.3.0
with:
@@ -161,32 +153,19 @@ jobs:
make docker-multi COMMIT=${COMMIT} DOCKER_REPO=${srcrepo} BUILDX_ACTION=--push
set -x
- export repo=${srcrepo}
export git_tag=${TAG_NAME}
export major_version=${git_tag%\.*}
- docker buildx imagetools create -t ${repo}:stable ${srcrepo}:latest
- docker buildx imagetools create -t ${repo}:${git_tag} ${srcrepo}:latest
- docker buildx imagetools create -t ${repo}:${major_version} ${srcrepo}:latest
-
- docker buildx imagetools create -t ${repo}:stable-alpine ${srcrepo}:alpine
- docker buildx imagetools create -t ${repo}:${git_tag}-alpine ${srcrepo}:alpine
- docker buildx imagetools create -t ${repo}:${major_version}-alpine ${srcrepo}:alpine
-
- # and now DockerHub (if we don't get rate-limited)
- export repo=gomplate/gomplate
- docker buildx imagetools create -t ${repo}:stable ${srcrepo}:latest
- docker buildx imagetools create -t ${repo}:${git_tag} ${srcrepo}:latest
- docker buildx imagetools create -t ${repo}:${major_version} ${srcrepo}:latest
-
- docker buildx imagetools create -t ${repo}:stable-alpine ${srcrepo}:alpine
- docker buildx imagetools create -t ${repo}:${git_tag}-alpine ${srcrepo}:alpine
- docker buildx imagetools create -t ${repo}:${major_version}-alpine ${srcrepo}:alpine
-
- export repo=hairyhenderon/gomplate
- docker buildx imagetools create -t ${repo}:stable ${srcrepo}:latest
- docker buildx imagetools create -t ${repo}:${git_tag} ${srcrepo}:latest
- docker buildx imagetools create -t ${repo}:${major_version} ${srcrepo}:latest
-
- docker buildx imagetools create -t ${repo}:stable-alpine ${srcrepo}:alpine
- docker buildx imagetools create -t ${repo}:${git_tag}-alpine ${srcrepo}:alpine
- docker buildx imagetools create -t ${repo}:${major_version}-alpine ${srcrepo}:alpine
+
+ # Push tags first to GHCR, then to DockerHub (last in case of rate-limiting)
+ for repo in "${srcrepo}" "gomplate/gomplate" "hairyhenderson/gomplate"; do
+ for tag in "stable" "${git_tag}" "${major_version}"; do
+ docker buildx imagetools create -t ${repo}:${tag} ${srcrepo}:latest
+ docker buildx imagetools create -t ${repo}:${tag}-alpine ${srcrepo}:alpine
+ done
+ done
+
+ # also push latest and alpine tags to the other repos
+ for repo in "gomplate/gomplate" "hairyhenderson/gomplate"; do
+ docker buildx imagetools create -t ${repo}:latest ${srcrepo}:latest
+ docker buildx imagetools create -t ${repo}:alpine ${srcrepo}:alpine
+ done
diff --git a/version/gen/vgen.go b/version/gen/vgen.go
index 8fd2a00d..6b5c585f 100644
--- a/version/gen/vgen.go
+++ b/version/gen/vgen.go
@@ -28,7 +28,8 @@ func main() {
}
func describedVersion() (*semver.Version, error) {
- desc, err := runCmd("git describe --always")
+ // --tags ensures we get the most recent tag, whether lightweight or annotated
+ desc, err := runCmd("git describe --tags --always")
if err != nil {
return nil, fmt.Errorf("git describe failed: %w", err)
}