Skip to content

Now using working-directory #16

Now using working-directory

Now using working-directory #16

Workflow file for this run

name: Docker Build
on:
workflow_dispatch:
schedule:
- cron: "0 1 * * *"
push:
branches:
- "master"
- "container_builds"
tags:
- "v*.*.*"
pull_request:
branches:
- "master"
permissions:
packages: write
jobs:
build:
runs-on: ubuntu-latest
outputs:
docker_image_tags: ${{ steps.docker_meta.outputs.tags }}
steps:
# Get the repository's code
- name: Checkout
uses: actions/checkout@v4
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
# https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
- name: Login to GHCR
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Docker meta
id: docker_meta # you'll use this in the next step
uses: docker/metadata-action@v5
with:
# list of Docker images to use as base name for tags
images: |
ghcr.io/tbeijen/tbnl-hugo
# Docker tags based on the following events/attributes
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
deploy:
runs-on: ubuntu-latest
needs:
- build
steps:
- name: Extract sha tag
id: extract_sha_tag
run: |
tags="${{ needs.build.outputs.docker_image_tags }}"
echo "Docker image tags:"
echo "$tags"
sha_tag=$(echo "$tags" | grep -oE 'sha-[^ ]+')
if [ -z "$sha_tag" ]; then
echo "No tag starting with 'sha-' found."
exit 1
else
echo "Extracted sha- tag: $sha_tag"
echo "::set-output name=sha_tag::$sha_tag"
fi
- name: GitOps Checkout
uses: actions/checkout@v4
with:
repository: tbeijen/tbnl-www-gitops
ref: main
token: ${{ secrets.TBNL_BOT_PAT }}
fetch-depth: 0
path: tbnl-www-gitops
- name: GitOps update
working-directory: ./tbnl-www-gitops
run: |
git config user.name "TBNL bot"
git config user.email "[email protected]"
new_sha_tag="${{ steps.extract_sha_tag.outputs.sha_tag}}"
deployment_file="variants/www-test/version.yaml"
echo "Deployment file path: $deployment_file"
echo "Current deployment file contents:"
cat $deployment_file
sed -i.bak -E "s/(image:.*:)(sha-[a-z0-9]+)/\1${new_sha_tag}/" $deployment_file
echo "Modified deployment file contents:"
cat $deployment_file
git commit -am "Updated www test to ${{ steps.extract-sha-tag.outputs.sha_tag}}"
git push origin main