Skip to content

Commit fb06c27

Browse files
ci: convert CircleCi to Github workflows (#4884)
Co-authored-by: Satyajit Sahoo <satyajit.happy@gmail.com>
1 parent 316b9ae commit fb06c27

12 files changed

Lines changed: 187 additions & 366 deletions

File tree

.circleci/comment-artifacts.sh

Lines changed: 0 additions & 22 deletions
This file was deleted.

.circleci/config.yml

Lines changed: 0 additions & 141 deletions
This file was deleted.

.circleci/deploy-docs.sh

Lines changed: 0 additions & 72 deletions
This file was deleted.

.github/actions/setup/action.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Setup
2+
description: Setup Node.js and install dependencies
3+
4+
runs:
5+
using: composite
6+
steps:
7+
- name: Setup Node.js
8+
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e
9+
with:
10+
node-version-file: .nvmrc
11+
12+
- name: Restore dependencies
13+
id: yarn-cache
14+
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae
15+
with:
16+
path: |
17+
**/node_modules
18+
.yarn/install-state.gz
19+
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}-${{ hashFiles('**/package.json', '!node_modules/**') }}
20+
restore-keys: |
21+
${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
22+
${{ runner.os }}-yarn-
23+
24+
- name: Install dependencies
25+
if: steps.yarn-cache.outputs.cache-hit != 'true'
26+
run: yarn install --immutable
27+
shell: bash
28+
29+
- name: Cache dependencies
30+
if: steps.yarn-cache.outputs.cache-hit != 'true'
31+
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae
32+
with:
33+
path: |
34+
**/node_modules
35+
.yarn/install-state.gz
36+
key: ${{ steps.yarn-cache.outputs.cache-primary-key }}

.github/workflows/ci.yml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
9+
jobs:
10+
lint:
11+
name: Lint
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
16+
17+
- name: Setup
18+
uses: ./.github/actions/setup
19+
20+
- name: Lint
21+
run: yarn lint-no-fix
22+
23+
typescript:
24+
name: TypeScript
25+
runs-on: ubuntu-latest
26+
steps:
27+
- name: Checkout
28+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
29+
30+
- name: Setup
31+
uses: ./.github/actions/setup
32+
33+
- name: Check types
34+
run: yarn typescript
35+
36+
unit-tests:
37+
name: Unit tests
38+
runs-on: ubuntu-latest
39+
steps:
40+
- name: Checkout
41+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
42+
43+
- name: Setup
44+
uses: ./.github/actions/setup
45+
46+
- name: Restore Jest cache
47+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
48+
with:
49+
path: ./cache/jest
50+
key: jest-cache-${{ github.ref_name }}
51+
restore-keys: jest-cache-
52+
53+
- name: Run unit tests
54+
run: yarn test --maxWorkers=2 --coverage
55+
56+
- name: Upload coverage
57+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
58+
if: always()
59+
with:
60+
name: coverage
61+
path: coverage
62+
63+
build-package:
64+
name: Build package
65+
runs-on: ubuntu-latest
66+
steps:
67+
- name: Checkout
68+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
69+
70+
- name: Setup
71+
uses: ./.github/actions/setup
72+
73+
- name: Build package
74+
run: |
75+
yarn prepack
76+
node ./scripts/typescript-output-lint
77+
78+
build-docs:
79+
name: Build docs
80+
if: github.event_name == 'pull_request'
81+
runs-on: ubuntu-latest
82+
steps:
83+
- name: Checkout
84+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
85+
86+
- name: Setup
87+
uses: ./.github/actions/setup
88+
89+
- name: Build docs
90+
run: yarn --cwd docs build
91+
92+
- name: Upload docs
93+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
94+
with:
95+
name: docs
96+
path: docs/build

0 commit comments

Comments
 (0)