Skip to content

Commit

Permalink
ci: add PR title checker and release workflow (#1705)
Browse files Browse the repository at this point in the history
Co-authored-by: Max Novelli <[email protected]>
  • Loading branch information
Junjiequan and nitrosx authored Jan 22, 2025
1 parent c0c64ea commit 903a5b3
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 0 deletions.
15 changes: 15 additions & 0 deletions .github/pr-title-checker-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"LABEL": {
"name": ""
},
"CHECKS": {
"NOTE": "You can test the regex here: https://regex101.com/r/nDeps5/1",
"regexp": "(^(?<type>build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test|BREAKING CHANGE)(?<scope>\\([\\w\\s*-]+\\))?(?<breaking_change>!?): (?<body>([a-z]).+[^.|\\s])$)",
"regexpFlags": "gm"
},
"MESSAGES": {
"success": "All OK",
"failure": "PR title not following the semantic-release guidelines (<type>(<scope>): <subject>). Please check https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines for more information.",
"notice": ""
}
}
22 changes: 22 additions & 0 deletions .github/workflows/pr-title-checker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: PR Title Checker

on:
pull_request:
branches:
- master
types:
- opened
- edited
- synchronize
- labeled
- unlabeled

jobs:
check-pr-title:
runs-on: ubuntu-latest
steps:
- uses: thehanimo/[email protected]
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
pass_on_octokit_error: false
configuration_path: .github/pr-title-checker-config.json #(optional. defaults to .github/pr-title-checker-config.json)
81 changes: 81 additions & 0 deletions .github/workflows/release-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: Bump release version and build-push image

on:
push:
branches:
- release

env:
NODE_VERSION: 20.x
RELEASE_BRANCH: release

jobs:
build-release:
runs-on: ubuntu-latest
permissions:
contents: write
packages: write

steps:
- uses: actions/checkout@v4

## Commit message examples for Release type (patch|minor|major) can be found:
## https://github.com/mathieudutour/github-tag-action
- name: Bump version and push tag
id: tag_version
uses: mathieudutour/[email protected]
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
release_branches: ${{ env.RELEASE_BRANCH }}

- name: Create a GitHub release
uses: ncipollo/release-action@v1
with:
tag: ${{ steps.tag_version.outputs.new_tag }}
name: Release ${{ steps.tag_version.outputs.new_tag }}
body: ${{ steps.tag_version.outputs.changelog }}

## The setup-qemu-action simplifies the setup of QEMU for cross-platform builds
## https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}

- name: Install Node.js dependencies
run: npm ci

## The metadata-action dynamically generates and manages metadata for Docker images,
## like tags and labels, based on the provided inputs and workflow context.
## https://github.com/docker/metadata-action
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/scicatproject/frontend
tags: |
type=raw,value=stable
type=raw,value=${{ steps.tag_version.outputs.new_tag }}
type=semver,pattern={{version}}
type=raw,value={{date 'YYYY_MM'}},prefix=r_
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64/v8
push: true
tags: ${{ steps.meta.outputs.tags }}

0 comments on commit 903a5b3

Please sign in to comment.