From 68013cc2e7a5ede88ca0209c3d2f69a1877e7598 Mon Sep 17 00:00:00 2001 From: sujiba Date: Thu, 6 Jun 2024 16:52:08 +0200 Subject: [PATCH] feat: change forgejo actions --- .forgejo/workflows/docker_build_push.yaml | 100 ++++++++++++++-------- docker-build/README.md | 20 ----- docker-build/build_and_push.sh | 2 - 3 files changed, 64 insertions(+), 58 deletions(-) delete mode 100755 docker-build/README.md delete mode 100755 docker-build/build_and_push.sh diff --git a/.forgejo/workflows/docker_build_push.yaml b/.forgejo/workflows/docker_build_push.yaml index 43d09bd..49ee2f4 100755 --- a/.forgejo/workflows/docker_build_push.yaml +++ b/.forgejo/workflows/docker_build_push.yaml @@ -1,4 +1,4 @@ -name: Build and push dyndns-netcup +name: build container image on: push: @@ -6,40 +6,68 @@ on: - main jobs: - build: + + 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 variables - run: | - VER=$(cat ./docker-build/VERSION) - echo "VERSION=$VER" >> $GITHUB_ENV - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: ./docker-build - file: ./docker-build/Dockerfile - platforms: | - linux/arm/v7 - linux/arm64 - linux/amd64 - push: true - tags: | - ${{ secrets.DOCKER_USER }}/docker-owndyndns-netcup:${{ env.VERSION }} - ${{ secrets.DOCKER_USER }}/docker-owndyndns-netcup:latest + - name: Checkout + uses: actions/checkout@v4 + + - name: Install jq + run: apt-get update && apt-get upgrade && apt-get install -y jq + + - 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') -eq year ] && [ $(date +'%m') -eq month ]; then + ((counter++)); + # else reset counter + else + counter=1; + fi + + # Create + new_release=$(date +'%Y').$(date +'mY').$counter + echo "RELEASE=$new_release">> $GITHUB_ENV + + 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: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: ./docker-build + file: ./docker-build/Dockerfile + platforms: | + linux/arm/v7 + linux/arm64 + linux/amd64 + push: true + tags: | + ${{ secrets.DOCKER_USER }}/docker-owndyndns-netcup:${{ env.VERSION }} + ${{ secrets.DOCKER_USER }}/docker-owndyndns-netcup:latest diff --git a/docker-build/README.md b/docker-build/README.md deleted file mode 100755 index df61ef0..0000000 --- a/docker-build/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Build it yourself - -https://docs.docker.com/buildx/working-with-buildx/#work-with-builder-instances - - ``` - # This creates a new builder instance with a single node based on your current configuration. - docker buildx create - # To list all available builders, use - docker buildx ls - # To switch between different builders, use - docker buildx use - # After creating a new instance, you can delete it with - docker buildx rm -``` - -Build it as a multi-platform image: -``` -chmod +x build_and_push.sh -./build_and_push.sh -``` \ No newline at end of file diff --git a/docker-build/build_and_push.sh b/docker-build/build_and_push.sh deleted file mode 100755 index ed39007..0000000 --- a/docker-build/build_and_push.sh +++ /dev/null @@ -1,2 +0,0 @@ -docker buildx build --platform linux/arm/v7,linux/arm64/v8,linux/amd64 -t sujiba/docker-owndyndns-netcup:`cat VERSION` --push . -docker buildx build --platform linux/arm/v7,linux/arm64/v8,linux/amd64 -t sujiba/docker-owndyndns-netcup:latest --push . \ No newline at end of file