Skip to content

Commit

Permalink
ci: add workflow for creating snapshot container images
Browse files Browse the repository at this point in the history
Signed-off-by: László Várady <[email protected]>
  • Loading branch information
MrAnno committed May 18, 2024
1 parent af935c4 commit 432db40
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 4 deletions.
22 changes: 18 additions & 4 deletions .github/workflows/axosyslog-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ on:
type:
required: true
type: string # stable / snapshot
platforms:
required: false
type: string
default: linux/amd64,linux/arm64,linux/arm/v7
snapshot-tarball-artifact:
required: false
type: string
Expand All @@ -21,17 +25,27 @@ env:
DEBUG_PLATFORM: linux/amd64

jobs:
prepare:
runs-on: ubuntu-latest
outputs:
platform-matrix: ${{ steps.platforms.outputs.platform-matrix }}
steps:
- id: platforms
env:
PLATFORMS: ${{ inputs.platforms }}
run: |
PLATFORM_MATRIX="$(echo "$PLATFORMS" | jq 'split(",")' -Rc)"
echo "platform-matrix=$PLATFORM_MATRIX" >> $GITHUB_OUTPUT
image-build:
if: github.repository_owner == 'axoflow'
runs-on: ubuntu-latest
needs: prepare

strategy:
fail-fast: false
matrix:
platform:
- linux/amd64
- linux/arm64
- linux/arm/v7
platform: ${{ fromJSON(needs.prepare.outputs.platform-matrix) }}

steps:
- name: Prepare
Expand Down
52 changes: 52 additions & 0 deletions .github/workflows/axosyslog-image-snapshot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: AxoSyslog Docker snapshot image

on:
workflow_dispatch:
inputs:
platforms:
default: "linux/amd64,linux/arm64,linux/arm/v7"
push:
branches:
- main

jobs:
tarball:
runs-on: ubuntu-latest
outputs:
snapshot-version: ${{ steps.snapshot-version.outputs.SNAPSHOT_VERSION }}
steps:
- name: Checkout AxoSyslog source
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Prepare docker image
run: ./dbld/rules cache-image-tarball

- 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/axosyslog-}"
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@v4
with:
name: source-tarball
path: dbld/build/*.tar.*

publish-image:
uses: ./.github/workflows/axosyslog-docker.yml
needs: tarball
with:
type: snapshot
platforms: ${{ inputs.platforms || 'linux/amd64' }}
snapshot-tarball-artifact: source-tarball
snapshot-version: ${{ needs.tarball.outputs.snapshot-version }}
snapshot-tags: dev-${{ github.ref_name }}

0 comments on commit 432db40

Please sign in to comment.