Release #8
This file contains hidden or 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: 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 }} | |