Merge pull request #712 from turbo124/master

Fixes for publish-image regression
This commit is contained in:
David Bomba
2025-01-24 15:40:41 +11:00
committed by GitHub
2 changed files with 33 additions and 27 deletions

View File

@@ -53,6 +53,5 @@ jobs:
- name: Move cache - name: Move cache
run: | run: |
mkdir -p /tmp/.buildx-cache
rm -rf /tmp/.buildx-cache rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache mv /tmp/.buildx-cache-new /tmp/.buildx-cache

View File

@@ -1,5 +1,9 @@
name: Publish Debian Container Images name: Publish Container Image
# When its time to do a release do a full cross platform build for all supported
# architectures and push all of them to Docker Hub.
# Only trigger on semver shaped tags.
# Ref: https://github.com/metcalfc/docker-action-examples/blob/main/.github/workflows/release.yml
on: on:
push: push:
tags-ignore: tags-ignore:
@@ -8,22 +12,14 @@ on:
jobs: jobs:
docker: docker:
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
strategy:
matrix:
include:
- image: invoiceninja/invoiceninja-octane
context: ./debian
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 # Updated from v2 uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Prepare - name: Prepare
id: prep id: prep
run: | run: |
DOCKER_IMAGE=${{ matrix.image }} DOCKER_IMAGE=invoiceninja/invoiceninja
VERSION=edge VERSION=edge
if [[ $GITHUB_REF == refs/tags/* ]]; then if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/} VERSION=${GITHUB_REF#refs/tags/}
@@ -32,44 +28,55 @@ jobs:
MAJOR="$(echo "${VERSION}" | cut -d. -f1)" MAJOR="$(echo "${VERSION}" | cut -d. -f1)"
MINOR="$(echo "${VERSION}" | cut -d. -f2)" MINOR="$(echo "${VERSION}" | cut -d. -f2)"
TAGS="$TAGS,${DOCKER_IMAGE}:${MAJOR},${DOCKER_IMAGE}:${MAJOR}.${MINOR}" TAGS="$TAGS,${DOCKER_IMAGE}:${MAJOR},${DOCKER_IMAGE}:${MAJOR}.${MINOR}"
if [[ $VERSION =~ ^5\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
# Debug output TAGS="$TAGS,${DOCKER_IMAGE}:latest"
echo "Current version: ${VERSION}" fi
echo "Version pattern check: $([[ $VERSION =~ ^5\.[0-9]{1,3}\.[0-9]{1,3}$ ]] && echo "matches" || echo "doesn't match")" echo "tags=${TAGS}" >> $GITHUB_OUTPUT
TAGS="$TAGS,${DOCKER_IMAGE}:latest"
echo "tags=${TAGS}" >> $GITHUB_OUTPUT # Updated output syntax
echo "version=${VERSION}" >> $GITHUB_OUTPUT echo "version=${VERSION}" >> $GITHUB_OUTPUT
echo "major=${MAJOR}" >> $GITHUB_OUTPUT echo "major=${MAJOR}" >> $GITHUB_OUTPUT
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v3 # Updated from v1 uses: docker/setup-qemu-action@v1
with: with:
platforms: all platforms: all
- name: Set up Docker Buildx - name: Set up Docker Buildx
id: buildx id: buildx
uses: docker/setup-buildx-action@v3 # Updated from v1 uses: docker/setup-buildx-action@v1
- name: Cache Docker layers
uses: actions/cache@v4
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-5-${{ hashFiles('alpine/5/cache_buster') }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-5-${{ hashFiles('alpine/5/cache_buster') }}-
- name: Login to DockerHub - name: Login to DockerHub
if: github.event_name != 'pull_request' if: github.event_name != 'pull_request'
uses: docker/login-action@v3 # Updated from v1 uses: docker/login-action@v1
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }} password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push - name: Build and push
id: docker_build id: docker_build
uses: docker/build-push-action@v5 # Updated from v2 uses: docker/build-push-action@v2
with: with:
context: ${{ matrix.context }} builder: ${{ steps.buildx.outputs.name }}
context: ./alpine/${{ steps.prep.outputs.major }}/
build-args: INVOICENINJA_VERSION=${{ steps.prep.outputs.version }} build-args: INVOICENINJA_VERSION=${{ steps.prep.outputs.version }}
target: prod
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }} push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.prep.outputs.tags }} tags: ${{ steps.prep.outputs.tags }}
cache-from: type=gha # Updated cache type cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=gha,mode=max cache-to: type=local,dest=/tmp/.buildx-cache-new
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
- name: Image digest - name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }} run: echo ${{ steps.docker_build.outputs.digest }}