-
Notifications
You must be signed in to change notification settings - Fork 0
92 lines (80 loc) · 2.72 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
name: CI
run-name: 'CI for PR: #${{github.event.pull_request.number}} ${{ github.event.pull_request.title }}'
on:
pull_request:
types:
- opened
- reopened
- synchronize
- reopened
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_EMAIL: '41898282+github-actions[bot]@users.noreply.github.com'
GH_USER: 'github-actions[bot]'
jobs:
lint-pr:
name: Validate PR title
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: amannn/action-semantic-pull-request@v5
id: lint_pr_title
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: marocchino/sticky-pull-request-comment@v2
# When the previous steps fails, the workflow would stop. By adding this
# condition you can continue the execution with the populated error message.
if: always() && (steps.lint_pr_title.outputs.error_message != null)
with:
header: pr-title-lint-error
message: |
Hey there and thank you for opening this pull request! 👋🏼
We require pull request titles to follow the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/) and it looks like your proposed title needs to be adjusted.
Details:
```
${{ steps.lint_pr_title.outputs.error_message }}
```
# Delete a previous comment when the issue has been resolved
- if: ${{ steps.lint_pr_title.outputs.error_message == null }}
uses: marocchino/sticky-pull-request-comment@v2
with:
header: pr-title-lint-error
delete: true
pre-check:
runs-on: ubuntu-latest
outputs:
is-skip: ${{ steps.pre-check.outputs.is-skip }}
steps:
- id: pre-check
uses: mato533/cicd-actions/pre-check@main
with:
target-sha: ${{ github.event.pull_request.head.sha }}
check:
runs-on: ubuntu-latest
outputs:
is-updated: ${{ steps.check.outputs.is-updated }}
needs:
- pre-check
- lint-pr
if: ${{ needs.pre-check.outputs.is-skip == 0 }}
steps:
- uses: mato533/cicd-actions/setup-pnpm@main
with:
cache: 'pnpm'
- uses: mato533/cicd-actions/format-source-code@main
id: check
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.PRIVATE_KEY }}
branch: ${{ github.head_ref }}
test:
needs:
- pre-check
- check
if: ${{ !cancelled() && !failure() && (needs.pre-check.outputs.is-skip > 0 || needs.check.outputs.is-updated == 0) }}
name: Run CI
uses: ./.github/workflows/test.yml