name: build container image on: push: branches: - main jobs: release_tag: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Get latest release and create new 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_ENV echo "Release $new_release successfully set" build: needs: release_tag runs-on: ubuntu-latest 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: Get hostname shell: bash run: | uname -n echo $DOCKER_TLS_VERIFY echo $DOCKER_CERT_PATH echo $DOCKER_HOST - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: endpoint: tcp://docker:2376 - 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:${{ env.VERSION }} ${{ secrets.DOCKER_USER }}/docker-owndyndns-netcup:latest