diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index c8bdb18..5373bd8 100755 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -36,12 +36,12 @@ jobs: # Create new_release=$(date +'%Y').$(date +'%m').$counter - echo "RELEASE=$new_release" >> "$GITHUB_OUTPUT" + echo "RELEASE=$new_release">> $GITHUB_OUTPUT echo "Release $new_release successfully set" build: - runs-on: ubuntu-latest needs: release_tag + runs-on: ubuntu-latest env: RELEASE: ${{ needs.release_tag.outputs.release }} steps: @@ -61,6 +61,7 @@ jobs: 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 @@ -71,15 +72,15 @@ jobs: push: true cleanup: true tags: | + ${{ secrets.DOCKER_USER }}/docker-owndyndns-netcup:$RELEASE ${{ secrets.DOCKER_USER }}/docker-owndyndns-netcup:latest - ${{ secrets.DOCKER_USER }}/docker-owndyndns-netcup:${{ needs.release_tag.outputs.release }} publish_release: needs: [release_tag, build] runs-on: ubuntu-latest env: - NEW_RELEASE: ${{ needs.release_tag.outputs.release }} - GH_TOKEN: "${{ secrets.RENOVATE_TOKEN }}" + RELEASE: ${{ needs.release_tag.outputs.release }} + GH_TOKEN: "${{ secrets.GH_TOKEN }}" steps: - name: Checkout uses: actions/checkout@v4 @@ -87,9 +88,10 @@ jobs: - name: Create new release shell: bash run: | + echo $RELEASE # Get latest release "created at" timestemp latest_release=$(curl -s https://git.smail.koeln/api/v1/repos/homelab/docker-ownDynDNS-netcup/releases\?limit\=1 | jq -r '.[] | .tag_name') - latest_release_time=$(date -d "$(curl -s https://git.smail.koeln/api/v1/repos/homelab/docker-ownDynDNS-netcup/releases\?limit\=1 | jq -r '.[] | .created_at')") + latest_release_time=$(date -d $(curl -s https://git.smail.koeln/api/v1/repos/homelab/docker-ownDynDNS-netcup/releases\?limit\=1 | jq -r '.[] | .created_at'))) echo "Last release from $latest_release_time" # Get last 50 commits @@ -101,32 +103,33 @@ jobs: while [[ $fin == 0 ]]; do - commit_time=$(date --date="$(< /tmp/last_50_commits.json jq -r --arg i "$i" '.[$i|tonumber] | .created' )"); + commit_time=$(date --date=$(cat /tmp/last_50_commits.json | jq -r --arg -i "$i" '.[$i|tonumber] | .created' )); if [[ $(date -d "$latest_release_time" +%s) -le $(date -d "$commit_time" +%s) ]]; then echo "$i $commit_time" - i=$((i + 1)) + i=$(($i + 1)); else fin=1; fi done + # Generate list of commit messages since latest release for release message j=0 - message_list="" + release_list="" while [[ "$j" != "$i" ]]; do - message=$(< /tmp/last_50_commits.json jq -r --arg j "$j" '.[$j|tonumber] | .commit.message') + message=$(cat /tmp/last_50_commits.json | jq -r --args j "$j" '.[$j|tonumber] | .commit.message') echo "$j $message" message_newline="${message}\n\"" message_list="$message_list* $message_newline" - j=$((j + 1)) + j=$(($j + 1)) done # Generate release message datetime=$(env TZ=Europe/Berlin date "+%A, %d.%m.%Y at %R") - body="Create automatically on $datetime by forgejo action \\n\\n $i commit(s) since relase $latest_release:\\n\\n$(echo $message_list | sed 's/"//g' | sed 's/README.md docker-build docker-compose.yaml example.config renovate.json/*/g')" - echo "$body" + body="Create automatically on $datetime by forgejo action \\n\\n $i commit(s) since relase $latest_release:\\n\\n$(echo $message_list | sed 's/"//g')" + echo $body # Create release - curl -d "{\"body\": \"$body\", \"tag_name\": \"$NEW_RELEASE\", \"target_commitish\": \"main\" }" https://git.smail.koeln/api/v1/repos/homelab/docker-ownDynDNS-netcup/releases -H "Authorization: token $GH_TOKEN" -H "Content-Type: application/json" \ No newline at end of file + curl -d "{\"body\": \"$body\", \"tag_name\": \"$RELEASE\", \"target_commitish\": \"main\" }" https://git.smail.koeln/api/v1/repos/homelab/docker-ownDynDNS-netcup/release -H "Authorization: token $GH_TOKEN" -H "Content-Type: application/json"