Skip to content

content(update): Team member 'chronz-tinatin' #18

content(update): Team member 'chronz-tinatin'

content(update): Team member 'chronz-tinatin' #18

Workflow file for this run

name: build and deploy
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
- main
- develop
pull_request:
branches:
- main
- develop
workflow_dispatch:
jobs:
setup_workflow_env:
runs-on: ubuntu-latest
outputs:
environment: ${{ steps.get_environment_from_git_ref.outputs.environment }}
environment_short: ${{ steps.get_environment_from_git_ref.outputs.environment_short }}
image_name: oad-mamems
registry_root: ghcr.io/acdh-oeaw/oad-mamems/
default_port: "3000"
fetch-depth: 10
submodules: "true" #false?
herokuish_base_image: ghcr.io/acdh-oeaw/herokuish-for-cypress/main:latest-22
BUILDPACK_URL: https://github.com/unfold/heroku-buildpack-pnpm
APP_NAME: oad-mamems
# SERVICE_ID: "99999"
# PUBLIC_URL: "https://some-stuff.acdh-ch-dev.oeaw.ac.at"
# You should not need to have to change anything below this line
#-----------------------------------------------------------------------------------------------------
steps:
- name: Get environment from git ref
id: get_environment_from_git_ref
run: |
echo "Running on branch ${{ github.ref_name }}"
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
echo "environment=production"
echo "environment=production" >> $GITHUB_OUTPUT
echo "environment_short=prod" >> $GITHUB_OUTPUT
else
echo "environment=review/${{ github.ref_name }}"
echo "environment=review/${{ github.ref_name }}" >> $GITHUB_OUTPUT
echo "environment_short=$(echo -n ${{ github.ref_name }} | sed 's/\(feat\|feature\|fix\)\{0,1\}[_/]//' | tr '_' '-' | tr '[:upper:]' '[:lower:]' | cut -c -63 )" >> $GITHUB_OUTPUT
fi
generate_workflow_vars:
needs: [setup_workflow_env]
environment:
name: ${{ needs.setup_workflow_env.outputs.environment }}
runs-on: ubuntu-latest
steps:
- name: Generate PUBLIC_URL if not set
id: generate_public_url
run: |
kube_ingress_base_domain="${{ vars.KUBE_INGRESS_BASE_DOMAIN }}"
public_url="${{ needs.setup_workflow_env.outputs.PUBLIC_URL || vars.PUBLIC_URL }}"
if [ "${public_url}x" == 'x' ]
then public_url=https://${{ needs.setup_workflow_env.outputs.environment_short }}.${kube_ingress_base_domain}
fi
echo "public_url=$public_url" >> $GITHUB_OUTPUT
outputs:
PUBLIC_URL: ${{ steps.generate_public_url.outputs.public_url }}
_1:
needs: [setup_workflow_env, generate_workflow_vars]
uses: acdh-oeaw/gl-autodevops-minimal-port/.github/workflows/build-herokuish-and-push-to-registry.yaml@main
secrets: inherit
# if you run this outside of of an org that provides KUBE_CONFIG etc as a secret, you need to specify every secret you want to pass by name
with:
environment: ${{ needs.setup_workflow_env.outputs.environment }}
registry_root: ${{ needs.setup_workflow_env.outputs.registry_root }}
image_name: ${{ needs.setup_workflow_env.outputs.image_name }}
BUILDPACK_URL: ${{ needs.setup_workflow_env.outputs.BUILDPACK_URL }}
default_port: ${{ needs.setup_workflow_env.outputs.default_port }}
PUBLIC_URL: ${{ needs.generate_workflow_vars.outputs.PUBLIC_URL }}
fetch-depth: ${{ fromJson(needs.setup_workflow_env.outputs.fetch-depth) }}
submodules: ${{ needs.setup_workflow_env.outputs.submodules }}
_2:
needs: [setup_workflow_env, generate_workflow_vars]
uses: acdh-oeaw/gl-autodevops-minimal-port/.github/workflows/herokuish-tests-db-url.yaml@main
secrets: inherit
# if you run this outside of acdh-oeaw yo uneed to specify every secret you want to pass by name
with:
environment: ${{ needs.setup_workflow_env.outputs.environment}}
registry_root: ${{ needs.setup_workflow_env.outputs.registry_root }}
image_name: ${{ needs.setup_workflow_env.outputs.image_name }}
default_port: ${{ needs.setup_workflow_env.outputs.default_port }}
fetch-depth: ${{ fromJson(needs.setup_workflow_env.outputs.fetch-depth) }}
herokuish_base_image: ${{ needs.setup_workflow_env.outputs.herokuish_base_image }}
POSTGRES_ENABLED: ${{ needs.setup_workflow_env.outputs.POSTGRES_ENABLED }}
PUBLIC_URL: ${{ needs.generate_workflow_vars.outputs.PUBLIC_URL }}
BUILDPACK_URL: ${{ needs.setup_workflow_env.outputs.BUILDPACK_URL }}
submodules: ${{ needs.setup_workflow_env.outputs.submodules }}
_3:
needs: [setup_workflow_env, generate_workflow_vars, _1, _2]
uses: acdh-oeaw/gl-autodevops-minimal-port/.github/workflows/deploy.yml@main
secrets: inherit
# if you run this outside of acdh-oeaw yo uneed to specify every secret you want to pass by name
# KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
# KUBE_INGRESS_BASE_DOMAIN: ${{ secrets.KUBE_INGRESS_BASE_DOMAIN }}
# POSTGRES_USER: ${{ secrets.POSTGRES_USER }}
# POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
# POSTGRES_DB: ${{ secrets.POSTGRES_DB }}
# K8S_SECRET_A_VAR_NAME: ${{ }}
with:
environment: ${{ needs.setup_workflow_env.outputs.environment}}
fetch-depth: ${{ fromJson(needs.setup_workflow_env.outputs.fetch-depth) }}
DOCKER_TAG:
${{ needs.setup_workflow_env.outputs.registry_root }}${{
needs.setup_workflow_env.outputs.image_name }}
APP_NAME:
${{ needs.setup_workflow_env.outputs.APP_NAME }}-${{
needs.setup_workflow_env.outputs.environment_short }}
APP_ROOT: ${{ needs.setup_workflow_env.outputs.APP_ROOT }}
SERVICE_ID: ${{ needs.setup_workflow_env.outputs.SERVICE_ID }}
PUBLIC_URL: ${{ needs.generate_workflow_vars.outputs.PUBLIC_URL }}
POSTGRES_ENABLED: ${{ needs.setup_workflow_env.outputs.POSTGRES_ENABLED == 'true'}}
default_port: "${{ needs.setup_workflow_env.outputs.default_port}}"
submodules: ${{ needs.setup_workflow_env.outputs.submodules }}