Marker ics20 hooks #5434
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Docker Build and Push | |
# Build & Push builds the simapp docker image on every push to master | |
# and pushes the image to https://hub.docker.com/u/provenanceio | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
tags: | |
- "v[0-9]+.[0-9]+.[0-9]+" # Push events to matching v*, i.e. v1.0, v20.15.10 | |
- "v[0-9]+.[0-9]+.[0-9]+-rc*" # Push events to matching v*, i.e. v1.0-rc1, v20.15.10-rc5 | |
# Set concurrency for this workflow to cancel in-progress jobs if retriggered. | |
# The github.ref is only available when triggered by a PR so fall back to github.run_id for other cases. | |
# The github.run_id is unique for each run, giving each such invocation it's own unique concurrency group. | |
# Basically, if you push to a PR branch, jobs that are still running for that PR will be cancelled. | |
# But jobs started because of a merge to main or a release tag push are not cancelled. | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
docker: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.20' | |
- name: Go mod vendor | |
run: | | |
go mod vendor | |
- name: Prepare | |
id: prep | |
run: | | |
DOCKER_IMAGE=provenanceio/provenance | |
VERSION=noop | |
if [[ $GITHUB_REF == refs/tags/* ]]; then | |
VERSION=${GITHUB_REF#refs/tags/} | |
elif [[ $GITHUB_REF == refs/heads/* ]]; then | |
VERSION=$(echo ${GITHUB_REF#refs/heads/} | sed -r 's#/+#-#g') | |
if [ "${{ github.event.repository.default_branch }}" = "$VERSION" ]; then | |
VERSION=latest | |
fi | |
fi | |
TAGS="${DOCKER_IMAGE}:${VERSION}" | |
if [[ $VERSION =~ ^v[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then | |
TAGS="$TAGS,${DOCKER_IMAGE}:${VERSION}" | |
fi | |
echo "Setting output: version=${VERSION}" | |
echo "version=${VERSION}" >> "$GITHUB_OUTPUT" | |
echo "Setting output: tags=${TAGS}" | |
echo "tags=${TAGS}" >> "$GITHUB_OUTPUT" | |
created="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" | |
echo "Setting output: created=$created" | |
echo "created=$created" >> "$GITHUB_OUTPUT" | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Available platforms | |
run: echo ${{ steps.buildx.outputs.platforms }} | |
- name: Login to DockerHub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Publish to Docker Hub | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
target: run | |
build-args: | | |
VERSION=${{ steps.prep.outputs.version }} | |
platforms: linux/amd64 | |
file: docker/blockchain/Dockerfile | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ steps.prep.outputs.tags }} |