Merge pull request #1362 from mikepenz/develop #1578
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: 'CI' | |
on: | |
push: | |
tags: | |
- '*' | |
pull_request: | |
concurrency: | |
group: ${{ github.event.pull_request.number }}-ci | |
cancel-in-progress: true | |
jobs: | |
build: | |
if: github.event_name == 'pull_request' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set Node.js 20.x | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20.x | |
- name: Install NPM | |
run: | | |
npm install | |
- name: Run NPM | |
run: | | |
npm run all | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
test: | |
if: github.event_name == 'pull_request' | |
runs-on: ubuntu-latest | |
steps: | |
# the below actions use the local state of the action. please replace `./` with `mikepenz/release-changelog-builder-action@{latest-release}` | |
# Showcases how to use the action without a prior checkout | |
# Since 3.2.0 the configuration can be provided within the `yml` file | |
- name: "Configuration without Checkout" | |
id: without_checkout | |
uses: mikepenz/release-changelog-builder-action@develop | |
with: | |
toTag: "v3.1.1" | |
configurationJson: | | |
{ | |
"template": "#{{CHANGELOG}}\n\n<details>\n<summary>Uncategorized</summary>\n\n#{{UNCATEGORIZED}}\n</details>", | |
"categories": [ | |
{ | |
"title": "## 🚀 Features", | |
"labels": ["feature"] | |
}, | |
{ | |
"title": "## 🐛 Fixes", | |
"labels": ["fix"] | |
}, | |
{ | |
"title": "## 🧪 Tests", | |
"labels": ["test"] | |
}, | |
{ | |
"title": "## 💬 Other", | |
"labels": ["other"] | |
}, | |
{ | |
"title": "## 📦 Dependencies", | |
"labels": ["dependencies"] | |
} | |
] | |
} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Echo Configuration without Checkout Changelog | |
env: | |
CHANGELOG: ${{ steps.without_checkout.outputs.changelog }} | |
run: echo "CHANGELOG" | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
# Showcase the most minimal configuration possible | |
- name: "Minimal Configuration" | |
id: minimal_release | |
uses: ./ | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Echo Minimal Configuration Changelog | |
env: | |
CHANGELOG: ${{ steps.minimal_release.outputs.changelog }} | |
run: echo "$CHANGELOG" | |
# Showcases a more complex configuration, providing a configuration, and specifically referencing owner, repo, from and to tag | |
- name: "Complex Configuration" | |
id: complex_release | |
uses: ./ | |
with: | |
configuration: "configs/configuration_complex.json" | |
owner: "mikepenz" | |
repo: "release-changelog-builder-action" | |
fromTag: "v0.0.1" | |
toTag: "v0.0.3" | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Echo Complex Configuration Changelog | |
env: | |
CHANGELOG: ${{ steps.complex_release.outputs.changelog }} | |
run: echo "CHANGELOG" | |
# Showcases the capability to generate the changelog for an external repository provided | |
# Showcase ability to only fetch data first, and then continue with exported data later | |
- name: "External Repo Configuration Collect Report" | |
id: external_changelog_collect | |
uses: ./ | |
with: | |
owner: "mikepenz" | |
repo: "MaterialDrawer" | |
fromTag: "v8.1.0" | |
toTag: "v8.1.6" | |
token: ${{ secrets.PERSONAL_TOKEN }} | |
exportCache: true | |
exportOnly: true | |
- name: "External Repo Configuration" | |
id: external_changelog | |
uses: ./ | |
with: | |
configuration: "configs/configuration_complex.json" | |
owner: "mikepenz" | |
repo: "MaterialDrawer" | |
cache: ${{ steps.external_changelog_collect.outputs.cache }} | |
- name: "External Repo Configuration Second" | |
id: external_changelog_second | |
uses: ./ | |
with: | |
configurationJson: | | |
{ | |
"template": "#{{CHANGELOG}}", | |
"pr_template": "PR: ##{{NUMBER}}", | |
"categories": [ | |
{ | |
"title": "## Everything", | |
"labels": [] | |
} | |
] | |
} | |
owner: "mikepenz" | |
repo: "MaterialDrawer" | |
cache: ${{ steps.external_changelog_collect.outputs.cache }} | |
- name: Echo External Repo Configuration Changelog | |
env: | |
CHANGELOG: ${{ steps.external_changelog.outputs.changelog }} | |
CHANGELOG_SECOND: ${{ steps.external_changelog_second.outputs.changelog }} | |
run: | | |
echo "First:" | |
echo "$CHANGELOG" | |
echo "Second:" | |
echo "$CHANGELOG_SECOND" | |
release: | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: "Build Changelog" | |
id: github_release | |
uses: mikepenz/release-changelog-builder-action@v4 | |
with: | |
configuration: "configs/configuration_repo.json" | |
ignorePreReleases: ${{ !contains(github.ref, '-') }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Create Release | |
uses: mikepenz/action-gh-release@v1 | |
with: | |
body: ${{steps.github_release.outputs.changelog}} | |
prerelease: ${{ contains(github.ref, '-rc') || contains(github.ref, '-b') || contains(github.ref, '-a') }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |