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