Skip to content

Commit

Permalink
feat: Establish release process (#69)
Browse files Browse the repository at this point in the history
  • Loading branch information
flap1 authored May 21, 2024
1 parent cad6d7f commit 58ae2b8
Show file tree
Hide file tree
Showing 4 changed files with 193 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .github/git-pr-release-template.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<%= ENV['GIT_PR_RELEASE_TITLE'] %>

<%= ENV['GIT_PR_RELEASE_BODY'] %>
69 changes: 69 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
prerelease: true

# Filter previous releases considering target_commitish
include-pre-releases: true
filter-by-commitish: true

# Versioning configuration
tag: "v0.0.0"

categories:
- title: 'BREAKING CHANGES'
labels:
- 'breaking'
- title: '💎 Features'
labels:
- 'feature'
- title: '🚀 Improvement'
labels:
- 'enhancement'
- title: '🐛 Bug Fixes'
labels:
- 'bug'
- title: '🧰 Maintenance'
labels:
- 'support'
- 'dependencies'
- title: '🧹 Chore'
labels:
- 'chore'

category-template: '### $TITLE'

change-title-escapes: '\<*_&#@`' # Updated to disable mentions and code blocks

autolabeler:
- label: 'feature'
branch:
- '/^feat\/.+/'
- label: 'enhancement'
branch:
- '/^refac\/.+/'
- label: 'bug'
branch:
- '/^fix\/.+/'
title:
- '/^fix/i'
- label: 'support'
branch:
- '/^support\/.+/'
title:
- '/^support/i'
- '/^chore/i'
- '/^ci/i'
- '/^docs/i'
- '/^test/i'

include-labels:
- breaking
- feature
- enhancement
- bug
- support
- dependencies

exclude-labels:
- 'exclude-from-changelog'

template: |
$CHANGES
50 changes: 50 additions & 0 deletions .github/workflows/draft-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Draft Release

on:
push:
branches:
- main
- dev/*.*.*

permissions:
contents: write
actions: write # Necessary to cancel workflow executions
checks: write # Necessary to write reports
pull-requests: write # Necessary to comment on PRs

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:

# Refs: https://github.com/release-drafter/release-drafter
update-release-draft:
runs-on: ubuntu-latest

outputs:
CURRENT_VERSION: ${{ steps.version.outputs.project_version }}
RELEASE_DRAFT_BODY: ${{ steps.release-drafter.outputs.body }}

steps:
- uses: actions/checkout@v4
with:
repository: ut-issl/c2a-generator
ssh-key: ${{ secrets.PRIVATE_REPO_SSH_KEY }}

- name: Read version from pyproject.toml
id: version
run: |
version=$(awk -F\" '/version =/ {print $2}' pyproject.toml)
echo "::set-output name=project_version::$version"
- uses: release-drafter/release-drafter@v6
id: release-drafter
with:
config-name: release-drafter.yml
name: v${{ steps.version.outputs.project_version }}
tag: v${{ steps.version.outputs.project_version }}
version: ${{ steps.version.outputs.project_version }}
disable-autolabeler: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
71 changes: 71 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Release

on:
pull_request:
branches:
- main
types: [closed]

permissions:
contents: write

jobs:
create-github-release:

runs-on: ubuntu-latest

if: github.event.pull_request.merged == true

outputs:
RELEASED_VERSION: ${{ steps.version.outputs.project_version }}

steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.base.ref }}

- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'yarn'
cache-dependency-path: '**/yarn.lock'

- name: Install dependencies
run: |
yarn global add turbo
yarn global add node-gyp
yarn --frozen-lockfile
- name: Read version from VERSION file
id: version
run: echo "::set-output name=project_version::$(cat VERSION)"

- name: Read version from pyproject.toml
id: version
run: |
version=$(awk -F\" '/version =/ {print $2}' pyproject.toml)
echo "::set-output name=project_version::$version"
- name: Update Changelog
uses: stefanzweifel/changelog-updater-action@v1
with:
latest-version: v${{ steps.version.outputs.project_version }}
release-notes: ${{ github.event.pull_request.body }}

- name: Commit, Tag and Push
uses: stefanzweifel/git-auto-commit-action@v5
with:
branch: ${{ github.event.pull_request.base.ref }}
commit_message: Release v${{ steps.version.outputs.project_version }}
tagging_message: v${{ steps.version.outputs.project_version }}

- uses: softprops/action-gh-release@v2
with:
body: ${{ github.event.pull_request.body }}
tag_name: v${{ steps.version.outputs.project_version }}
target_commitish: ${{ github.head_ref }}

- name: Delete drafts
uses: hugo19941994/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 comments on commit 58ae2b8

Please sign in to comment.