From 496b36dd63d8e5173e671efa10adc1de8dec851d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20V=C3=A1rady?= Date: Tue, 21 Feb 2023 12:28:10 +0100 Subject: [PATCH] ci/docker: publish version tags for nightly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: László Várady --- .github/workflows/docker.yml | 9 +++++++-- .github/workflows/snapshot.yml | 24 ++++++++++++++++++++---- alpine.dockerfile | 5 ++--- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 0d272332ec..dcd55cfd08 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -9,6 +9,9 @@ on: tarball-artifact: required: false type: string + snapshot-version: + required: false + type: string env: DOCKER_IMAGE_NAME: ghcr.io/axoflow/syslog-ng @@ -57,7 +60,7 @@ jobs: if [[ '${{ inputs.pkg-type }}' = 'stable' ]]; then TAGS='${{ steps.stable-tags.outputs.tags }}' elif [[ '${{ inputs.pkg-type }}' = 'nightly' ]]; then - TAGS="${DOCKER_IMAGE_NAME}:nightly" + TAGS="${DOCKER_IMAGE_NAME}:nightly,${DOCKER_IMAGE_NAME}:${{ inputs.snapshot-version }}" else echo Unexpected input: pkg-type=${{ inputs.pkg-type }} false @@ -72,4 +75,6 @@ jobs: platforms: ${{ env.PLATFORMS }} push: true tags: ${{ steps.tags.outputs.TAGS }} - build-args: PKG_TYPE=${{ inputs.pkg-type }} + build-args: | + PKG_TYPE=${{ inputs.pkg-type }} + SNAPSHOT_VERSION=${{ inputs.snapshot-version }} diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index a2fc8fecfb..184b1ca01f 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -19,8 +19,11 @@ on: - cron: '00 23 * * *' jobs: - create-source-tarball: + tarball: + name: create-source-tarball runs-on: ubuntu-latest + outputs: + snapshot-version: ${{ steps.snapshot-version.outputs.SNAPSHOT_VERSION }} steps: - name: Checkout syslog-ng source uses: actions/checkout@v3 @@ -35,6 +38,15 @@ jobs: - name: Create source tarball run: ./dbld/rules pkg-tarball + - name: Determine snapshot version + id: snapshot-version + run: | + tarball_filename="$(find dbld/build -name '*.tar.*' -printf '%f\n')" + tarball_name="${tarball_filename/\.tar.*}" + tarball_version="${tarball_name/syslog-ng-}" + pkg_version="$(echo $tarball_version | sed -E 's|(([0-9]+\.){2}[0-9]+).*|\1|')_git$(date +%Y%m%d)" + echo "SNAPSHOT_VERSION=${pkg_version}" >> $GITHUB_OUTPUT + - name: Store source tarball as artifact uses: actions/upload-artifact@v3 with: @@ -43,7 +55,7 @@ jobs: build-and-test: runs-on: ubuntu-latest - needs: create-source-tarball + needs: tarball steps: - name: Checkout source uses: actions/checkout@v3 @@ -61,7 +73,10 @@ jobs: file: alpine.dockerfile load: true tags: syslog-ng:test - build-args: PKG_TYPE=nightly + build-args: | + PKG_TYPE=nightly + SNAPSHOT_VERSION=${{ needs.tarball.outputs.snapshot-version }} + - name: Smoke test run: | @@ -76,7 +91,8 @@ jobs: publish-image: if: github.ref == 'refs/heads/main' uses: ./.github/workflows/docker.yml - needs: build-and-test + needs: [tarball, build-and-test] with: pkg-type: nightly tarball-artifact: source-tarball + snapshot-version: ${{ needs.tarball.outputs.snapshot-version }} diff --git a/alpine.dockerfile b/alpine.dockerfile index 2513ff10e3..45e9257219 100644 --- a/alpine.dockerfile +++ b/alpine.dockerfile @@ -1,6 +1,7 @@ FROM alpine:3.17 as apkbuilder ARG PKG_TYPE=stable +ARG SNAPSHOT_VERSION RUN apk add --update-cache \ alpine-conf \ @@ -21,9 +22,7 @@ RUN mkdir packages \ tarball_filename="$(ls *.tar.*)"; \ [ -z "$tarball_filename" ] && echo "Tarball for nightly can not be found" && exit 1; \ tarball_name="${tarball_filename/\.tar.*}"; \ - tarball_version="${tarball_name/syslog-ng-}"; \ - pkg_version="$(echo $tarball_version | sed -E 's|(([0-9]+\.){2}[0-9]+).*|\1|')_git$(date +%Y%m%d)"; \ - sed -i -e "s|^pkgver=.*|pkgver=$pkg_version|" -e "s|^builddir=.*|builddir=\"\$srcdir/$tarball_name\"|" APKBUILD; \ + sed -i -e "s|^pkgver=.*|pkgver=$SNAPSHOT_VERSION|" -e "s|^builddir=.*|builddir=\"\$srcdir/$tarball_name\"|" APKBUILD; \ sed -i -e "s|^source=.*|source=\"$tarball_filename\"|" APKBUILD; \ fi \ && abuild checksum \