name: Create Release on: workflow_call: outputs: release_name: description: "Name of the created release" value: ${{ jobs.create_release.outputs.release_name }} success: description: "Was the release created successfully?" value: ${{ jobs.create_release.outputs.success }} jobs: create_release: name: Create Release runs-on: ubuntu-latest outputs: release_name: ${{ steps.tag_version.outputs.new_tag }} success: ${{ steps.set_flag.outputs.success }} steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Changes since last tag id: changes run: | CHANGES=$(git log $(git describe --tags --abbrev=0)..HEAD --no-merges --oneline) echo "$CHANGES" if [ -z "$CHANGES" ]; then echo "changes=false" >> "$GITEA_OUTPUT"; else echo "changes=true" >> "$GITEA_OUTPUT"; fi - name: Bump version and push tag id: tag_version if: steps.changes.outputs.changes == 'true' uses: mathieudutour/github-tag-action@v6.2 with: github_token: ${{ secrets.GITHUB_TOKEN }} default_bump: minor # default_bump: false - name: Create a GitHub release if: steps.changes.outputs.changes == 'true' uses: ncipollo/release-action@v1 with: tag: ${{ steps.tag_version.outputs.new_tag }} name: ${{ steps.tag_version.outputs.new_tag }} body: ${{ steps.tag_version.outputs.changelog }} generateReleaseNotes: true - name: Set success/fail flag id: set_flag if: steps.changes.outputs.changes == 'true' run: if test "${{ steps.changes.outputs.changes }}" = "true"; then echo "success=true" >> "$GITEA_OUTPUT"; else echo "success=false" >> "$GITEA_OUTPUT"; fi