Skip to content

Release

Release #8

Workflow file for this run

name: Release
on:
workflow_dispatch:
inputs:
version:
description: "Version number (e.g., 1.2.3)"
required: true
env:
DOCKER_IMAGE_NAME: apex-dispatcher-api
DOCKER_REGISTRY_REGION: eu-nl
DOCKER_REGISTRY_URL: swr.eu-nl.otc.t-systems.com
DOCKER_REGISTRY_BUCKET: vito
jobs:
publish-docker:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Get release version
env:
TAG_VERSION: ${{ inputs.version }}
run: |
echo "RELEASE_VERSION=${TAG_VERSION#v*}" >> $GITHUB_ENV
echo $RELEASE_VERSION
- name: Prepare envs
run: |
echo "IMAGE_NAME=${DOCKER_IMAGE_NAME}:${RELEASE_VERSION}" >> $GITHUB_ENV
echo "IMAGE_TAG_RELEASE=${DOCKER_REGISTRY_URL}/${DOCKER_REGISTRY_BUCKET}/${DOCKER_IMAGE_NAME}:${RELEASE_VERSION}" >> $GITHUB_ENV
echo "IMAGE_TAG_LATEST=${DOCKER_REGISTRY_URL}/${DOCKER_REGISTRY_BUCKET}/${DOCKER_IMAGE_NAME}:latest" >> $GITHUB_ENV
- name: Build docker image
run: |
docker build . --tag $IMAGE_NAME
- name: Tag the image
run: |
docker tag $IMAGE_NAME $IMAGE_TAG_RELEASE
docker tag $IMAGE_NAME $IMAGE_TAG_LATEST
- name: Docker login
env:
OS_ACCESS_KEY: ${{ secrets.OS_ACCESS_KEY }}
OS_SECRET_KEY: ${{ secrets.OS_SECRET_KEY }}
run: |
LOGIN_KEY=`printf "$OS_ACCESS_KEY" | openssl dgst -binary -sha256 -hmac "$OS_SECRET_KEY" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//'`
docker login -u ${DOCKER_REGISTRY_REGION}@${OS_ACCESS_KEY} -p ${LOGIN_KEY} ${DOCKER_REGISTRY_URL}
- name: Push image to registry
run: |
docker push $IMAGE_TAG_RELEASE
docker push $IMAGE_TAG_LATEST
- name: Clean up the local images
run: |
docker rmi $IMAGE_TAG_RELEASE
docker rmi $IMAGE_TAG_LATEST
docker rmi $IMAGE_NAME
github-release:
runs-on: ubuntu-latest
needs: [publish-docker]
permissions:
contents: write
packages: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Create Git Tag
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git tag -a v${{ github.event.inputs.version }} -m "Release v${{ github.event.inputs.version }}"
git push origin v${{ github.event.inputs.version }}
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: v${{ github.event.inputs.version }}
name: v${{ github.event.inputs.version }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}