ci: viecpro-backend-prod deployment #20
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: Build Image | |
on: | |
push: | |
branches: [main] | |
# on: | |
# workflow_run: | |
# workflows: ["Django Tests CI"] | |
# types: | |
# - completed | |
jobs: | |
setup_workflow_env: | |
runs-on: ubuntu-latest | |
outputs: | |
image_tagged: viecpro-backend-devops | |
registry_root: ghcr.io/acdh-oeaw/ | |
default_port: "5000" | |
APP_ROOT: "/" | |
steps: | |
- run: "/bin/true" | |
build_and_push_to_registry: | |
runs-on: ubuntu-latest | |
needs: [setup_workflow_env] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Docker meta | |
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 }} | |
#ghcr.io/acdh-oeaw/InTaVia-Backend | |
tags: | | |
type=ref,event=branch | |
type=ref,event=pr | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
type=raw,value=latest,enable={{is_default_branch}} | |
type=raw,value={{sha}},enable={{is_default_branch}} | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Login to ghcr.io | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Create build environment | |
env: | |
SECRETS_CONTEXT: ${{ toJson(secrets) }} | |
run: | | |
echo -n "$SECRETS_CONTEXT" | jq -r '[to_entries[]|select(.key|startswith("K8S_SECRET_"))]|map("\(.key|sub("K8S_SECRET_"; ""))=\(.value|tostring|@sh)")|.[]' > secrets.env | |
- name: Build and push | |
uses: docker/build-push-action@v3 | |
with: | |
context: . | |
platforms: linux/amd64 | |
push: true | |
secret-files: | | |
"secrets_env=./secrets.env" | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
# deploy_viecpro_dev: | |
# 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 }} | |
# APP_NAME: ${{ vars.APP_NAME}} | |
# APP_ROOT: ${{ needs.setup_workflow_env.outputs.APP_ROOT }} | |
# SERVICE_ID: ${{ vars.SERVICE_ID }} | |
# PUBLIC_URL: ${{ vars.PUBLIC_URL }} | |
# environment: "viecpro_backend_test" | |
# default_port: "${{ needs.setup_workflow_env.outputs.default_port}}" | |
# KUBE_NAMESPACE: ${{ vars.KUBE_NAMESPACE }} | |
# DJANGO_SETTINGS_MODULE: ${{ vars.DJANGO_SETTINGS_MODULE }} | |
deploy_viecpro_prod: | |
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 }} | |
environment: "viecpro_backend_prod" | |
APP_NAME: "viecpro-backend-prod" | |
APP_ROOT: ${{ needs.setup_workflow_env.outputs.APP_ROOT }} | |
SERVICE_ID: ${{ vars.SERVICE_ID }} | |
PUBLIC_URL: "https://viecpro-backend.acdh-ch-dev.oeaw.ac.at" | |
default_port: "${{ needs.setup_workflow_env.outputs.default_port}}" | |
KUBE_NAMESPACE: ${{ vars.KUBE_NAMESPACE }} | |
POSTGRES_ENABLED: false | |
#POSTGRES_HOST: "" | |
#DJANGO_SETTINGS_MODULE: ${{ vars.DJANGO_SETTINGS_MODULE }} | |
#MYSQL_HOST: ${{ vars.MYSQL_HOST }} | |
#CELERY_BROKER_URL: ${{ vars.CELERY_BROKER_URL }} |