-
Notifications
You must be signed in to change notification settings - Fork 0
85 lines (71 loc) · 2.38 KB
/
cd.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
name: 'Continuous Delivery'
on:
push:
branches:
- main
workflow_dispatch:
concurrency:
group: cd-${{ github.ref }}
cancel-in-progress: true
env:
# 手動実行か否か
IS_DISPATCH: ${{ contains(fromJSON('["workflow_dispatch"]'), github.event_name) }}
jobs:
release:
uses: ./.github/workflows/wc-release.yml
with:
gh-app-id: ${{ vars.BOT_APP_ID }}
secrets:
gh-app-private-key: ${{ secrets.BOT_PRIVATE_KEY }}
filter:
permissions:
contents: read
runs-on: ubuntu-22.04
outputs:
deploy: ${{ steps.changes.outputs.deploy }}
steps:
# https://github.com/marketplace/actions/checkout
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
# https://github.com/marketplace/actions/paths-changes-filter
- name: Paths Changes Filter
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
with:
filters: |
deploy:
- 'apps/**/*'
- 'packages/**/*'
- 'package.json'
- name: Output Needs
id: needs
run: |
echo "deploy=${{ env.IS_DISPATCH == 'true' || steps.changes.outputs.deploy == 'true' }}" >> "$GITHUB_OUTPUT"
deploy:
permissions:
contents: read
deployments: write
runs-on: ubuntu-22.04
needs: filter
if: needs.filter.outputs.deploy == 'true'
steps:
# https://github.com/marketplace/actions/checkout
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
# https://github.com/marketplace/actions/mise-action
- name: mise action
uses: jdx/mise-action@3bc85396a273ed82bba5e53a15174bbf9dba095c # v2.0.2
# https://github.com/marketplace/actions/vercel-action
- name: Deploy to Vercel
uses: amondnet/vercel-action@225d234cfe5340ca1f9a6cd158338126b5b6845f # v25.1.1
id: vercel
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID}}
vercel-version: "32.6.0"
- name: Lighthouse
uses: foo-software/[email protected]
with:
gitHubAccessToken: ${{ secrets.GITHUB_TOKEN }}
urls: ${{ steps.vercel.outputs.preview-url }}