-
Notifications
You must be signed in to change notification settings - Fork 32
Set up release-drafter #202
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| # https://github.com/release-drafter/release-drafter?tab=readme-ov-file#configuration-options | ||
| template: | | ||
| $CHANGES | ||
| **Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION | ||
| name-template: 'docs-builder v$RESOLVED_VERSION' | ||
| tag-template: 'v$RESOLVED_VERSION' | ||
| change-template: '- $TITLE by @$AUTHOR in #$NUMBER' | ||
| categories: | ||
| - title: '💥 Breaking Changes' | ||
| labels: | ||
| - 'changelog:breaking' # When a breaking change is introduced | ||
| - title: '✨ Features' | ||
| labels: | ||
| - 'changelog:feature' # When a new feature is introduced | ||
| - 'changelog:enhancement' # When an existing feature is improved | ||
reakaleek marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| - title: '🐛 Bug Fixes' | ||
| labels: | ||
| - 'changelog:fix' # When a bug is fixed | ||
reakaleek marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| - title: '📝 Documentation' | ||
| labels: | ||
| - 'changelog:docs' # When documentation is updated | ||
| - title: '🧰 Maintenance' | ||
| labels: | ||
| - 'changelog:chore' # When a chore is done | ||
| - 'changelog:ci' # When CI is updated | ||
| - 'changelog:dependencies' # When dependencies are updated | ||
| exclude-labels: | ||
| - 'changelog:skip' # When a PR should be excluded from the changelog | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can still discuss the appropriate labels.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ahh ignore previous comments, can we remove the
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Updated labels: e49c1c7 |
||
| version-resolver: | ||
| major: | ||
| labels: | ||
| - 'changelog:breaking' | ||
| minor: | ||
| labels: | ||
| - 'changelog:feature' | ||
| default: patch | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| --- | ||
| # This workflow creates a major tag in the format of vX when a release is published. | ||
| # E.g. if a release is published with the tag v1.1.0, this workflow will create a tag v1. | ||
| name: create-major-tag | ||
|
|
||
| on: | ||
| release: | ||
| types: | ||
| - published | ||
|
|
||
| permissions: | ||
| contents: write | ||
|
|
||
| jobs: | ||
| create-major-tag: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Get major version | ||
| run: | | ||
| MAJOR_VERSION=$(echo "${GITHUB_REF#refs/tags/v}" | awk -F. '{print $1}') | ||
| echo "MAJOR_VERSION=${MAJOR_VERSION}" >> "${GITHUB_ENV}" | ||
| - name: Create major tag | ||
| run: | | ||
| git tag "v${MAJOR_VERSION}" | ||
| git push -f origin "refs/tags/v${MAJOR_VERSION}" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| name: release-drafter | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| update-release-draft: | ||
| permissions: | ||
| contents: write | ||
| pull-requests: read | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: release-drafter/release-drafter@3f0f87098bd6b5c5b9a36d49c41d998ea58f9348 # v6.0.0 | ||
| env: | ||
| GITHUB_TOKEN: ${{ github.token }} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| name: required-labels | ||
|
|
||
| on: | ||
| pull_request_target: | ||
| types: | ||
| - opened | ||
| - labeled | ||
| - unlabeled | ||
| - synchronize | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| check-labels: | ||
| permissions: | ||
| contents: read | ||
| pull-requests: write | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - id: get-labels | ||
| run: | | ||
| labels=$(yq '[.categories[].labels] + .exclude-labels | flatten | unique | sort | @tsv' .github/release-drafter.yml | tr '\t' ',') | ||
| echo "labels=$labels" >> "${GITHUB_OUTPUT}" | ||
| - id: check-labels | ||
| uses: mheap/github-action-required-labels@5847eef68201219cf0a4643ea7be61e77837bbce # v5.4.1 | ||
| with: | ||
| mode: exactly | ||
| count: 1 | ||
| use_regex: false | ||
| add_comment: true | ||
| labels: ${{ steps.get-labels.outputs.labels }} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -136,3 +136,30 @@ To test performance it's best to build the binary and run outside of docker: | |
|
|
||
| For reference here's the `markitpy-doc` docset (50k markdown files) currently takes `14s` vs `several minutes` compared to | ||
| existing surveyed tools | ||
|
|
||
| # Release Process | ||
|
|
||
| This section outlines the process for releasing a new version of this project. | ||
|
|
||
| ## Versioning | ||
|
|
||
| This project uses [Semantic Versioning](https://semver.org/) and its version is | ||
| automatically determined by [release-drafter](https://github.com/release-drafter/release-drafter) | ||
| based on the labels of the pull requests merged into the `main` branch. | ||
|
|
||
| See the [release-drafter configuration](../.github/release-drafter.yml) for more details. | ||
|
|
||
| ## Creating a New Release | ||
|
|
||
| Every time a pull request is merged into the `main` branch, release-drafter will | ||
| create a draft release or update the existing draft release in the [Releases](https://github.com/elastic/docs-builder/releases) page. | ||
|
|
||
| To create a new release you need to publish the existing draft release created by release-drafter. | ||
|
|
||
| > [!IMPORTANT] | ||
| > Make sure the [release-drafter workflow](../.github/workflows/release-drafter.yml) is finished before publishing the release. | ||
|
|
||
| > [!NOTE] | ||
| > When a release is published, the [create-major-tag workflow](../.github/workflows/create-major-tag.yml) | ||
| > will force push a new major tag in the format `vX` where `X` is the major version of the release. | ||
| > For example, if the release is `v1.2.3` was published, the workflow will force push a new tag `v1` on the same commit. | ||
|
||
Uh oh!
There was an error while loading. Please reload this page.