From 3900f6a2ceb035bce9f213d6c2cb12dd7fcf8238 Mon Sep 17 00:00:00 2001 From: Birger Schacht Date: Thu, 16 Jan 2025 13:04:24 +0100 Subject: [PATCH] ci(deploy): add deploy workflow to build and deploy generated html --- .github/workflows/deploy.yml | 81 ++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..cb58fd3 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,81 @@ +#SPDX-FileCopyrightText: 2024 Birger Schacht +#SPDX-License-Identifier: MIT +name: Deploy to ACDH-CH infra + +on: + push: + branches: + - main + workflow_dispatch: + secrets: + C2_KUBE_CONFIG: + description: 'The kubctl config file with credentials to access the your kubernetes' + required: true + +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: Checkout repo + uses: actions/checkout@v3 + + - name: Setup python + uses: actions/setup-python@v5 + + - name: Install pylode + run: pip install pylode + + - name: Generate documentation + run: | + for file in `find types -name '*.ttl'`; do mkdir -p html/${file%.*}; pylode $file -o html/${file%.*}/index.html; done + + - name: Login to ghcr.io + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ needs.setup_workflow_env.outputs.registry_root }}${{ needs.setup_workflow_env.outputs.image_tagged }}/${{ github.ref_name }}-${{ needs.setup_workflow_env.outputs.datetime }} + 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}} + + - name: Build and push + uses: docker/build-push-action@v3 + with: + tags: ${{ steps.meta.outputs.tags }} + push: true + + + deploy: + if: ${{ !startsWith(github.ref_name, 'nodeploy/') }} + 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 }}