diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3f84449..3f5f5f0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,6 +22,18 @@ jobs: if: github.event_name == 'pull_request' runs-on: ubuntu-latest steps: + # Won't support providing a configuration file, as no checkout was done + - name: "Configuration without Checkout" + id: without_checkout + uses: mikepenz/release-changelog-builder-action@develop + with: + toTag: "v0.0.3" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Echo Configuration without Checkout Changelog + run: echo "${{steps.without_checkout.outputs.changelog}}" + - uses: actions/checkout@v2 with: fetch-depth: 0 # Checkout full depth so tags can be discovered automatically if not specified @@ -32,7 +44,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Echo Minimal + - name: Echo Minimal Configuration Changelog run: echo "${{steps.minimal_release.outputs.changelog}}" - name: "Complex Configuration" @@ -46,17 +58,13 @@ jobs: toTag: "v0.0.3" token: ${{ secrets.GITHUB_TOKEN }} - - name: Echo Complex + - name: Echo Complex Configuration Changelog run: echo "${{steps.complex_release.outputs.changelog}}" release: if: startsWith(github.ref, 'refs/tags/') runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 0 # Checkout full depth so tags can be discovered automatically if not specified - - name: Prepare Tag if: startsWith(github.ref, 'refs/tags/') id: tag_version @@ -66,6 +74,7 @@ jobs: id: github_release uses: mikepenz/release-changelog-builder-action@main with: + configuration: "configs/configuration_repo.json" toTag: ${{ steps.tag_version.outputs.VERSION }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/README.md b/README.md index 92df9de..6e822b9 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ Setup ๐Ÿ› ๏ธCustomization ๐Ÿ–๏ธContribute ๐Ÿงฌ • + Complete Sample ๐Ÿ–ฅ๏ธLicense ๐Ÿ““

@@ -171,6 +172,47 @@ Table of supported placeholders allowed to be used in the `pr_template` configur | `${{UNCATEGORIZED}}` | All pull requests not matching a specified label in categories | +## Complete Sample ๐Ÿ–ฅ๏ธ + +Below is a complete example showcasing how to define a build, which is executed when tagging the project. It consists of: +- Prepare tag, via the GITHUB_REF environment variable +- Build changelog, given the tag +- Create release on GitHub - specifying body with constructed changelog + +```yml +name: 'CI' +on: + push: + tags: + - '*' + + release: + if: startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + steps: + - name: Retrieve tag + if: startsWith(github.ref, 'refs/tags/') + id: tag_version + run: echo ::set-output name=VERSION::$(echo ${GITHUB_REF:10}) + + - name: Build Changelog + id: github_release + uses: mikepenz/release-changelog-builder-action@main + with: + toTag: ${{ steps.tag_version.outputs.VERSION }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Create Release + uses: actions/create-release@v1 + with: + tag_name: ${{ github.ref }} + release_name: ${{ github.ref }} + body: ${{steps.github_release.outputs.changelog}} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +``` + ## Contribute ๐Ÿงฌ ```bash diff --git a/configs/configuration_repo.json b/configs/configuration_repo.json new file mode 100644 index 0000000..f85ca02 --- /dev/null +++ b/configs/configuration_repo.json @@ -0,0 +1,20 @@ +{ + "categories": [ + { + "title": "## ๐Ÿš€ Features", + "labels": ["feature"] + }, + { + "title": "## ๐Ÿ› Fixes", + "labels": ["fix"] + }, + { + "title": "## ๐Ÿงช Tests", + "labels": ["test"] + }, + { + "title": "## ๐Ÿ’ฌ Other", + "labels": ["other"] + } + ] +} \ No newline at end of file