Skip to content

Build basex-validator image on Github and push to GHCR #6

Build basex-validator image on Github and push to GHCR

Build basex-validator image on Github and push to GHCR #6

Workflow file for this run

on:
pull_request:
types:
- opened
- reopened
- synchronize
- ready_for_review
push:
branches:
- master
jobs:
generate-version:
runs-on: ubuntu-latest
outputs:
trunkver: ${{ steps.trunkver.outputs.trunkver }}
steps:
- name: Get a version tag
id: trunkver
uses: crftd-tech/trunkver@main
with:
prerelease: ${{ github.ref == 'refs/heads/master' && 'false' || 'true' }}
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: satackey/[email protected]
continue-on-error: true
- name: Bring up test stack
run: docker compose up --wait
- name: Debug bring up test stack
if: failure()
run: docker compose logs
- name: Project Tests
run: (cd test &&./smoke_tests_wsgi.sh); cd ..
build-and-push:
needs: [generate-version, tests]
runs-on: ubuntu-latest
# if: github.ref == 'refs/heads/master'
env:
IMAGE_REPO: ghcr.io/elifesciences/basex-validator
IMAGE_TAG: ${{ github.ref == 'refs/heads/master' && needs.generate-version.outputs.trunkver || format('{0}-{1}', github.head_ref || github.ref_name, needs.generate-version.outputs.trunkver) }}
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push client image
uses: docker/build-push-action@v6
with:
push: true
load: false
cache-from: type=gha
cache-to: type=gha,mode=max
tags: |
${{ env.IMAGE_REPO }}:${{ github.sha }}
${{ env.IMAGE_REPO }}:${{ env.IMAGE_TAG }}