From b7de62006683d453caec3b0965ac2700c1d3abb1 Mon Sep 17 00:00:00 2001 From: Omar Siam Date: Fri, 6 Oct 2023 20:44:15 +0200 Subject: [PATCH] Build this automatically into a container image --- .github/workflows/starter.yaml | 61 ++++++++++++++++++++++++++++++++++ Dockerfile | 8 +++++ 2 files changed, 69 insertions(+) create mode 100644 .github/workflows/starter.yaml create mode 100644 Dockerfile diff --git a/.github/workflows/starter.yaml b/.github/workflows/starter.yaml new file mode 100644 index 0000000..72fb5a4 --- /dev/null +++ b/.github/workflows/starter.yaml @@ -0,0 +1,61 @@ +name: workflows starter +on: + push: {} + 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: transfer-vle-cache + registry_root: ghcr.io/${{ github.repository }}/ +# Usually you don't deal with all commits since the repository was created. +# Increase if you e.g don't find a tag you want to display in the application + fetch-depth: 10 + submodules: "false" +# 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\(ure\)\{0,1\}[_/]//' | tr '_' '-' | tr '[:upper:]' '[:lower:]' )" >> $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] + uses: acdh-oeaw/gl-autodevops-minimal-port/.github/workflows/build-dockerfile-and-push-to-registry.yaml@main + secrets: inherit + 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 }} + 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 }} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..81a7961 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM python:3.11 +LABEL authors="Omar Siam" + +COPY . /app/ +RUN python -m pip install pipenv && \ + cd /app && pipenv install +WORKDIR /app +CMD ["/usr/local/bin/pipenv", "run", "python", "main.py"] \ No newline at end of file