Skip to content

Build & Deploy

Build & Deploy #701

Workflow file for this run

#SPDX-FileCopyrightText: 2024 Birger Schacht
#SPDX-License-Identifier: MIT
name: Build & Deploy
on:
release:
types: [released]
workflow_dispatch:
schedule:
- cron: '30 6,12,18,0 * * *'
jobs:
setup_workflow_env:
runs-on: ubuntu-latest
outputs:
image_tagged: ${{ vars.APP_NAME }}
registry_root: ghcr.io/${{ github.repository }}/
datetime: ${{ steps.datetime.outputs.datetime }}
steps:
- id: datetime
run: echo "datetime=$(date +'%Y%m%d-%H%M%S')" >> $GITHUB_OUTPUT
build_and_push_to_registry:
runs-on: ubuntu-latest
needs: [setup_workflow_env]
steps:
- name: Login to ghcr.io
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ needs.setup_workflow_env.outputs.registry_root }}${{ needs.setup_workflow_env.outputs.image_tagged }}/${{ github.ref_name }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=raw,value=latest
type=raw,value={{sha}}
type=raw,value=${{ needs.setup_workflow_env.outputs.datetime }}
- name: Build and push
uses: docker/build-push-action@v6
with:
tags: ${{ steps.meta.outputs.tags }}
push: true
deploy:
needs: [setup_workflow_env, build_and_push_to_registry]
uses: acdh-oeaw/gl-autodevops-minimal-port/.github/workflows/deploy-cluster-2.yml@main
secrets: inherit
with:
DOCKER_TAG: ${{ needs.setup_workflow_env.outputs.registry_root }}${{ needs.setup_workflow_env.outputs.image_tagged }}/${{ github.ref_name }}:${{ needs.setup_workflow_env.outputs.datetime }}
APP_NAME: ${{ vars.APP_NAME }}
SERVICE_ID: ${{ vars.SERVICE_ID }}
PUBLIC_URL: ${{ vars.PUBLIC_URL }}
APP_ROOT: "/"
KUBE_NAMESPACE: ${{ vars.KUBE_NAMESPACE }}