docker-ownDynDNS-netcup/.forgejo/workflows/build.yaml
sujiba 8c46f9c775
Some checks failed
build image / release_tag (push) Successful in 2s
build image / build (push) Has been cancelled
feat(branches): prepare for dev branch
2024-07-07 20:39:26 +02:00

76 lines
2.3 KiB
YAML
Executable file

name: build image
on:
push:
branches:
- main
jobs:
release_tag:
runs-on: ubuntu-latest
outputs:
release: steps.create_release.outputs.release
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get latest release and create new release
id: create_release
shell: bash
run: |
# Get latest release.
latest_release=$(curl -s https://git.smail.koeln/api/v1/repos/homelab/docker-ownDynDNS-netcup/releases\?limit\=1 | jq -r '.[] | .tag_name')
# Cut release into year, month and counter.
year=$(echo $latest_release | awk -F '.' '//{print $1}')
month=$(echo $latest_release | awk -F '.' '//{print $2}')
counter=$(echo $latest_release | awk -F '.' '//{print $3}')
# increase the counter, if the release is from the same year and month
if [[ $(date +'%Y') == $year ]] && [[ $(date +'%m') == $month ]]; then
((counter++));
# else reset counter
else
counter=1;
fi
# Create
new_release=$(date +'%Y').$(date +'%m').$counter
echo "release=$new_release">> $GITHUB_OUTPUT
echo "Release $new_release successfully set"
build:
runs-on: ubuntu-latest
needs: release_tag
env:
release_tag: ${{needs.release_tag.outputs.release}}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
endpoint: tcp://forgejo-docker-in-docker-1:2375
platforms: linux/amd64,linux/arm64,linux/arm/v7
- name: Build and push
uses: docker/build-push-action@v6
with:
context: ./docker-build/
file: ./docker-build/Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7
push: true
cleanup: true
tags: |
${{ secrets.DOCKER_USER }}/docker-owndyndns-netcup:${{needs.release_tag.outputs.release}}
${{ secrets.DOCKER_USER }}/docker-owndyndns-netcup:latest