Merge pull request #1215 from Frederik-Baetens/main

update sortable image tag guide with github.run_number
pull/1334/head
Stefan Prodan 4 years ago committed by GitHub
commit 9164914d16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -36,6 +36,7 @@ $ date +%s
Alternatively, you can use a serial number as part of the tag. Some CI platforms will provide a
build number in an environment variable, but that may not be reliable to use as a serial number --
check the platform documentation.
For example, Github makes availabe the variable `github.run_number` which can be used as a reliable ever increasing serial number.
A commit count can be a reasonable stand-in for a serial number, if you build an image per commit
and you don't rewrite the branch in question:
@ -105,6 +106,39 @@ jobs:
${{ env.IMAGE }}:${{ steps.prep.outputs.BUILD_ID }}
```
### Alternative example utilizing github.run_number
Here is another example example of a [GitHub Actions job][gha-syntax] which tags images using Github action's built in `run_number`
and the git SHA1:
```yaml
jobs:
build-push:
env:
IMAGE: org/my-app
runs-on: ubuntu-latest
steps:
# These are prerequisites for the docker build step
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and publish container image with tag
uses: docker/build-push-action@v2
with:
push: true
context: .
file: ./Dockerfile
tags: |
${{ env.IMAGE }}:${{ github.sha }}-${{ github.run_number }}
```
## Using in an `ImagePolicy` object
When creating an `ImagePolicy` object, you will need to extract just the timestamp part of the tag,
@ -112,7 +146,7 @@ using the `tagFilter` field. You can filter for a particular branch to restrict
built from that branch.
Here is an example that filters for only images built from `main` branch, and selects the most
recent according the timestamp (created with `date +%s`):
recent according to a timestamp (created with `date +%s`) or according to the run number (`github.run_number` for example):
```yaml
apiVersion: image.toolkit.fluxcd.io/v1alpha2
@ -124,6 +158,7 @@ spec:
imageRepositoryRef:
name: image-repo
filterTags:
## use "pattern: '(?P<ts>.*)-.+'" if you copied the workflow example using github.run_number
pattern: '^main-[a-f0-9]+-(?P<ts>[0-9]+)'
extract: '$ts'
policy:

Loading…
Cancel
Save