Skip to content

Commit

Permalink
ci(fix): Attempt to fix release.yml
Browse files Browse the repository at this point in the history
Signed-off-by: Dave Henderson <[email protected]>
  • Loading branch information
hairyhenderson committed Dec 17, 2024
1 parent cec14a0 commit 7efd6b0
Show file tree
Hide file tree
Showing 4 changed files with 145 additions and 116 deletions.
76 changes: 0 additions & 76 deletions .github/workflows/docker-release.yml

This file was deleted.

18 changes: 0 additions & 18 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
Expand Up @@ -221,21 +221,3 @@ jobs:
--repo ${{ github.repository }}
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
deploy-homebrew:
runs-on: ubuntu-latest
needs: create-release
steps:
- uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.PRIVATE_KEY }}
- name: Set up Homebrew
id: set-up-homebrew
uses: Homebrew/actions/setup-homebrew@master
- name: Bump packages
uses: Homebrew/actions/bump-packages@master
with:
token: ${{ steps.app-token.outputs.token }}
formulae: gomplate
fork: false
129 changes: 107 additions & 22 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,13 @@ jobs:
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.PRIVATE_KEY }}
- name: install lab
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
run: |
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
Expand All @@ -33,44 +40,51 @@ 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: |
git config user.name "${{ github.actor }}"
git config user.email "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com"
git clone https://gitlab.alpinelinux.org/hairyhenderson/aports.git
git remote add upstream https://gitlab.alpinelinux.org/alpine/aports.git
set -ex
git config --global user.name "${{ github.actor }}"
git config --global user.email "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com"
git clone -v https://gitlab.alpinelinux.org/hairyhenderson/aports.git
cd aports
# note: this token expires, so needs to be rotated periodically
git remote set-url origin "https://oauth2:${{ secrets.GITLAB_ACCESS_TOKEN }}@gitlab.alpinelinux.org/hairyhenderson/aports.git"
git remote add upstream https://gitlab.alpinelinux.org/alpine/aports.git
git checkout master
- name: update fork
run: |
set -ex
cd aports
git fetch upstream
git fetch -v upstream
git rebase upstream/master
git push
- name: upgrade gomplate in aports
run: |
set -ex
export VERSION=${TAG_NAME#v}
cd aports/community/gomplate
git checkout -b upgrade-gomplate-aport-${VERSION}
export VERSION=${TAG_NAME#v}
export ENVJSON="{\"version\": \"${VERSION}\", \"sha512\": \"${{ steps.artifacts.outputs.sha512sum }}\" }"
gomplate_linux-amd64 -c .=env:///ENVJSON\?type=application/json \
../../../gomplate_linux-amd64 -c .=env:///ENVJSON\?type=application/json \
-f ../../../packaging/alpine/APKBUILD.tmpl \
-o APKBUILD
git add APKBUILD
git commit -S -sm "community/gomplate: upgrade to ${VERSION}"
git commit -sm "community/gomplate: upgrade to ${VERSION}"
git push -u origin upgrade-gomplate-aport-${VERSION}
# open a PR
lab mr create --allow-collaboration \
../../../lab mr create --allow-collaboration \
-m "community/gomplate: upgrade to ${VERSION}" \
-m "https://github.com/${{ github.repository }}/releases/tag/${TAG_NAME}"
deploy-homebrew:
runs-on: ubuntu-latest
# run on macOS - this doesn't work in Linuxbrew
runs-on: macos-latest
environment:
name: homebrew
env:
Expand All @@ -81,16 +95,6 @@ jobs:
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.PRIVATE_KEY }}
# - name: Retrieve release artifacts
# id: artifacts
# run: |
# # need the checksum and archive
# gh release download ${TAG_NAME} -p "${TAG_NAME}.sha*"

# echo "sha256sum=$(cat ${TAG_NAME}.sha256)" >> $GITHUB_OUTPUT
# echo "archive=https://github.com/${{ github.repository }}/archive/refs/tags/${TAG_NAME}.tar.gz" >> $GITHUB_OUTPUT
# env:
# GH_TOKEN: ${{ steps.app-token.outputs.token }}
- name: Set up Homebrew
id: set-up-homebrew
uses: Homebrew/actions/setup-homebrew@master
Expand All @@ -99,4 +103,85 @@ jobs:
with:
token: ${{ steps.app-token.outputs.token }}
formulae: gomplate
fork: false
fork: true
deploy-docker:
runs-on: ubuntu-latest
env:
TAG_NAME: ${{ github.event.release.tag_name }}
steps:
- name: Set up QEMU
uses: docker/[email protected]
- name: Set up Docker Buildx
id: buildx
uses: docker/[email protected]
with:
version: v0.19.3
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/[email protected]
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ steps.app-token.outputs.token }}
- name: Login to DockerHub
uses: docker/[email protected]
with:
# NOTE: DOCKERHUB_TOKEN and DOCKERHUB_USERNAME must be present in https://github.com/hairyhenderson/gomplate/settings
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build & Push
run: |
set -ex
# seed from the last ghcr.io image(s)
docker pull ghcr.io/hairyhenderson/gomplate:latest
docker pull ghcr.io/hairyhenderson/gomplate:alpine
export srcrepo=ghcr.io/${{ github.repository}}
export COMMIT=${{ github.sha }}
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
38 changes: 38 additions & 0 deletions packaging/alpine/APKBUILD.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Maintainer: Dave Henderson <[email protected]>
pkgname=gomplate
pkgver={{.version}}
pkgrel=0
pkgdesc="A versatile Go template processor"
url="https://github.com/hairyhenderson/gomplate"
arch="all"
license="MIT"
depends="ca-certificates"
makedepends="go"
options="net"
source="$pkgname-$pkgver.tar.gz::https://github.com/hairyhenderson/gomplate/archive/v$pkgver.tar.gz"

export GOFLAGS="$GOFLAGS -trimpath -modcacherw"
export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"

build() {
# CGO needs to be able to be enabled for -buildmode=pie, setting it to an
# empty string is a workaround for now.
# See: https://gitlab.alpinelinux.org/alpine/aports/-/issues/15809
make build \
CGO_ENABLED= \
VERSION="$pkgver" \
COMMIT="unknown"
}

check() {
# Note: make test (that runs go test -race) doesn't work.
go test -v
}

package() {
install -D -m 755 bin/gomplate "$pkgdir"/usr/bin/gomplate
}

sha512sums="{{.sha512}} gomplate-{{.version}}.tar.gz"

0 comments on commit 7efd6b0

Please sign in to comment.