Skip to content

Commit

Permalink
ci: improve workflow triggers
Browse files Browse the repository at this point in the history
- Unchain commit-lint and CI: Even if a commit does not meet the CI path filter, it still needs to lint the commit message.

- Unchain PR filter and CI: The CI workflow needs to be triggered when the commits in a pull request are modified.

- Allow manual publishing: Sometimes `semantic-release` will error out due to commit messages referencing discussions, but this does not affect the final RubyGems/GitHub Release. In such cases, manual triggering of the publish process is needed to complete the remaining publishing steps.
  • Loading branch information
cotes2020 committed Oct 29, 2024
1 parent c7f9675 commit add19aa
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 34 deletions.
7 changes: 3 additions & 4 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@ name: CD

on:
push:
branches:
- production
tags-ignore:
- "**"
branches: [production]
tags-ignore: ["**"]

jobs:
release:
if: ${{ ! startsWith(github.event.head_commit.message, 'chore(release)') }}
permissions:
contents: write
issues: write
Expand Down
25 changes: 13 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
name: "CI"
name: CI

on:
push:
branches:
- "master"
- "hotfix/**"
branches-ignore: [production]
paths-ignore:
- ".github/**"
- "!.github/workflows/ci.yml"
- ".gitignore"
- .gitignore
- "docs/**"
- "README.md"
- "LICENSE"
workflow_call:
- README.md
- LICENSE
pull_request:
paths-ignore:
- ".github/**"
- "!.github/workflows/ci.yml"
- .gitignore
- "docs/**"
- README.md
- LICENSE

jobs:
build:
Expand Down Expand Up @@ -44,7 +49,3 @@ jobs:

- name: Test Site
run: bash tools/test.sh

check-commit:
needs: build
uses: ./.github/workflows/commitlint.yml
5 changes: 4 additions & 1 deletion .github/workflows/commitlint.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
name: Lint Commit Messages

on: workflow_call
on:
push:
branches-ignore: [production]
pull_request:

jobs:
commitlint:
Expand Down
11 changes: 1 addition & 10 deletions .github/workflows/pr-filter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,6 @@ jobs:
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
result-encoding: string
script: |
const script = require('.github/workflows/scripts/pr-filter.js');
return await script({ github, context });
- name: Abort due to invalid PR
if: ${{ steps.intercept.outputs.result != 'true' }}
run: exit 1

test:
needs: check-template
uses: ./.github/workflows/ci.yml
await script({ github, context, core });
1 change: 1 addition & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ on:
required: true
BUILDER:
required: true
workflow_dispatch:

jobs:
launch:
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/scripts/pr-filter.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
function hasTypes(markdown) {
return /## Type of change/.test(markdown) && /-\s*\[x\]/i.test(markdown);
return /## Type of change/.test(markdown) && /-\s\[x\]/i.test(markdown);
}

function hasDescription(markdown) {
Expand All @@ -9,9 +9,9 @@ function hasDescription(markdown) {
);
}

module.exports = async ({ github, context }) => {
module.exports = async ({ github, context, core }) => {
const pr = context.payload.pull_request;
const body = pr.body === null ? '' : pr.body.trim();
const body = pr.body === null ? '' : pr.body;
const markdown = body.replace(/<!--[\s\S]*?-->/g, '');
const action = context.payload.action;

Expand All @@ -31,7 +31,7 @@ module.exports = async ({ github, context }) => {
issue_number: pr.number,
body: `Oops, it seems you've ${action} an invalid pull request. No worries, we'll close it for you.`
});
}

return isValid;
core.setFailed('PR content does not meet template requirements.');
}
};
4 changes: 2 additions & 2 deletions .github/workflows/style-lint.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: "Style Lint"
name: Style Lint

on:
push:
branches: ["master", "hotfix/**"]
branches-ignore: [production]
paths: ["_sass/**/*.scss"]
pull_request:
paths: ["_sass/**/*.scss"]
Expand Down

0 comments on commit add19aa

Please sign in to comment.