name: Auto release on: push: branches: [ "master" ] paths: - Makefile env: GIT_EMAIL: noreply@cryptic.systems GIT_USER: CSRBot jobs: tag_on_change: permissions: contents: write runs-on: ubuntu-latest steps: - uses: actions/checkout@v5.0.0 with: fetch-depth: 0 - name: Check if DC_VERSION line changed id: check_change run: | echo "changed=false" >> $GITHUB_OUTPUT for file in Makefile; do if git diff HEAD~1 HEAD -- "${file}" | grep --quiet '^[+-]DC_VERSION'; then echo "DC_VERSION line changed." echo "changed=true" >> $GITHUB_OUTPUT break fi done - name: Stop if no change detected if: steps.check_change.outputs.changed == 'false' run: echo "No DC_VERSION change. Exiting..." - name: Create and push new tag if: steps.check_change.outputs.changed == 'true' run: | defined_tag="$(grep --only-matching --perl-regexp 'DC_VERSION\?=v?[\d]*(\.[\d]*){0,2}' Makefile | cut --delimiter='=' --fields=2)" echo "defined_tag=${defined_tag}" >> $GITHUB_OUTPUT echo "New tag: ${defined_tag}" git config --local user.name "${GIT_USER}" git config --local user.email "${GIT_EMAIL}" git tag -a "${defined_tag}" -m "${defined_tag}" git push origin "${defined_tag}" - name: Trigger "Push tagged images" workflow if: steps.check_change.outputs.changed == 'true' uses: peter-evans/repository-dispatch@v4.0.0 with: client-payload: | { "tag": "${{ steps.bump.outputs.defined_tag }}" } event-type: push-tagged-images repository: ${{ github.repository }} token: ${{ github.token }}