-
Notifications
You must be signed in to change notification settings - Fork 0
133 lines (112 loc) · 3.35 KB
/
ci.yaml
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
name: Continuous integration
on:
push:
branches:
- dev
env:
JAVA_VERSION: 17
jobs:
lint:
runs-on: macos-13
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Lint
run: yarn lint
verify-android:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'yarn'
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: 'zulu'
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Verify
run: yarn verify:android
verify-ios:
runs-on: macos-13
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'yarn'
- name: Set up Xcode
run: sudo xcode-select --switch /Applications/Xcode_14.2.app
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Lint
run: yarn lint
- name: Verify
run: yarn verify:ios
create-pr:
runs-on: ubuntu-latest
needs: [lint, verify-ios, verify-android]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Create pull or update pull request
uses: actions/github-script@v7
with:
script: |
const head = context.payload.ref.replace('refs/heads/', '');
const base = 'main';
const title = 'Merge ' + head + ' into ' + base + ' 🔀';
const body = 'This is an automated PR';
async function run() {
try {
const { data: pulls } = await github.rest.pulls.list({
owner: context.repo.owner,
repo: context.repo.repo,
state: 'open',
head: context.repo.owner + ':' + head,
base: base
});
if (pulls.length > 0) {
const pullNumber = pulls[0].number;
console.log(`Updating existing PR #${pullNumber}`);
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: pullNumber,
title: title,
body: body
});
} else {
console.log('Creating new PR');
await github.rest.pulls.create({
owner: context.repo.owner,
repo: context.repo.repo,
title: title,
body: body,
head: head,
base: base
});
}
} catch (error) {
console.error('Error processing pull request:', error);
throw error;
}
}
run();