Skip to content

ci: update action scripts #40

ci: update action scripts

ci: update action scripts #40

Workflow file for this run

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();