Skip to content

pass token to create pull request action #8

pass token to create pull request action

pass token to create pull request action #8

Workflow file for this run

name: image-ci
on:
push:
branches:
- "main"
tags:
- "[0-9]*.[0-9]*.[0-9]*"
jobs:
build-tag-push:
runs-on: ubuntu-latest
strategy:
matrix:
path:
- 06-demo-application/api-golang
- 06-demo-application/api-node
- 06-demo-application/client-react
- 06-demo-application/load-generator-python
- 06-demo-application/postgresql
steps:
- name: Checkout
uses: actions/checkout@v4
with:
# Necessary to get all tags for IMAGE_TAG generation with git describe
fetch-depth: 0
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Generate Image Tag
id: generate-image-tag
working-directory: 14-cicd/github-actions
run: |
image_tag=$(task generate-version-tag)
echo "image_tag=$image_tag" >> $GITHUB_OUTPUT
- uses: actions/setup-go@v4
if: matrix.path == '06-demo-application/api-golang'
with:
go-version: "1.22.x"
- uses: ko-build/[email protected]
if: matrix.path == '06-demo-application/api-golang'
with:
version: v0.15.4
- name: Build Image
env:
IMAGE_TAG: ${{ steps.generate-image-tag.outputs.image_tag }}
working-directory: ${{ matrix.path }}
run: |
task build-container-image-multi-arch IMAGE_TAG=${IMAGE_TAG}
update-tags:
runs-on: ubuntu-latest
needs: build-tag-push
permissions:
pull-requests: write
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
# Necessary to get all tags for IMAGE_TAG generation with git describe
fetch-depth: 0
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
# TODO: generate once and use everywhere (to avoid race condition)
- name: Generate Image Tag
id: generate-image-tag
working-directory: 14-cicd/github-actions
run: |
image_tag=$(task generate-version-tag)
echo "image_tag=$image_tag" >> $GITHUB_OUTPUT
- name: Update Image Tags
working-directory: 14-cicd/github-actions
env:
IMAGE_TAG: ${{ steps.generate-image-tag.outputs.image_tag }}
run: |
if [[ $GITHUB_REF == refs/heads/main ]]; then
task update-staging-image-tags NEW_TAG=${IMAGE_TAG}
elif [[ $GITHUB_REF == refs/tags/*.*.* ]]; then
task update-production-image-tags NEW_TAG=${IMAGE_TAG}
else
echo "::error Neither main branch nor tag... something went wrong"
exit 1
fi
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}