-
-
Notifications
You must be signed in to change notification settings - Fork 0
137 lines (114 loc) · 3.57 KB
/
ci.yml
File metadata and controls
137 lines (114 loc) · 3.57 KB
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
name: CI
on:
pull_request:
push:
branches:
- master
- staging
- 'dev/*'
- 'fix/*'
paths-ignore:
- '**.md'
- '**.txt'
- 'LICENSE'
env:
CI: true
permissions:
contents: read
checks: write
jobs:
lint:
name: 📋 Lint
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- name: 🕶️ Checkout repository
uses: actions/checkout@v6
- name: 🚀 Bootstrap
uses: ./.github/common/bootstrap
- name: 📋 Lint
run: pnpm run lint
typecheck:
name: ✅ Typecheck
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- name: 🕶️ Checkout repository
uses: actions/checkout@v6
- name: 🚀 Bootstrap
uses: ./.github/common/bootstrap
- name: ✅ Typecheck
run: pnpm run typecheck
test:
name: 🧪 Test
needs: [typecheck]
timeout-minutes: 25
runs-on: ubuntu-latest
steps:
- name: 🕶️ Checkout repository
uses: actions/checkout@v6
- name: 🚀 Bootstrap
uses: ./.github/common/bootstrap
- name: 🧪 Test
run: pnpm run test --coverage
- name: 🦺 Codecov Coverage Reports
if: ${{ !cancelled() }}
uses: codecov/codecov-action@v5.5.2
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: filiphsps/react-native-scroll-to-child
- name: 🦺 Upload test results to Codecov
if: ${{ !cancelled() }}
uses: codecov/test-results-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: filiphsps/react-native-scroll-to-child
build:
name: 🔨 Build
needs: [lint, typecheck]
timeout-minutes: 25
runs-on: ubuntu-latest
steps:
- name: 🕶️ Checkout repository
uses: actions/checkout@v6
- name: 🚀 Bootstrap
uses: ./.github/common/bootstrap
- name: 🔨 Build All
run: pnpm run build
- name: 📦 Upload build artifact
uses: actions/upload-artifact@v6
with:
retention-days: 1
include-hidden-files: true
overwrite: true
compression-level: 0
if-no-files-found: error
name: build-artifact
path: dist/
release:
name: 🚢 Release
needs: [build, test]
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
permissions:
contents: write
issues: write
pull-requests: write
id-token: write
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: 🕶️ Checkout repository
uses: actions/checkout@v6
- name: 🚀 Bootstrap
uses: ./.github/common/bootstrap
- name: 📥 Download build artifact
uses: actions/download-artifact@v7
with:
name: build-artifact
path: dist/
- name: 🔬 Verify integrity
run: npm audit signatures
- name: 📦 Semantic Release
if: ${{ !cancelled() }}
run: pnpx semantic-release