-
Notifications
You must be signed in to change notification settings - Fork 28
108 lines (103 loc) · 3.29 KB
/
main.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
name: CI
on:
push:
branches: ['**', '!gh-pages']
pull_request:
branches: ['**', '!gh-pages']
create:
tags: 'v[0-9]*'
jobs:
test:
name: Test on ${{ matrix.os }}
strategy:
matrix: { os: [ubuntu-latest] }
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-${{ hashFiles('package.json', 'package-lock.json') }}
restore-keys: ${{ runner.os }}-
- uses: actions/setup-node@v2
with:
node-version: '16'
- run: |
npm install
xvfb-run --auto-servernum npm test
npm run lint
deploy:
name: Deploy on ${{ matrix.os }}
needs: test
if: |
github.event_name == 'create' &&
startsWith(github.ref, 'refs/tags/')
strategy:
matrix: { os: [ubuntu-latest] }
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-${{ hashFiles('package.json', 'package-lock.json') }}
restore-keys: ${{ runner.os }}-
- uses: actions/setup-node@v2
with:
node-version: '16'
registry-url: 'https://registry.npmjs.org'
- run: |
npm install
npm run dist
sed -i 's/"private":\ true/"private":\ false/' package.json
sed -i -E 's/^dist\/?.*$//' .gitignore
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
web:
name: Web on ${{ matrix.os }}
needs: test
if: |
github.event_name == 'push' &&
github.ref == 'refs/heads/master'
strategy:
matrix: { os: [ubuntu-latest] }
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-${{ hashFiles('package.json', 'package-lock.json') }}
restore-keys: ${{ runner.os }}-
- uses: actions/setup-node@v2
with:
node-version: '16'
- run: |
npm install
npm run dist
- run: |
git config user.name "GitHub Actions"
git config user.email "[email protected]"
git fetch --depth 9 origin $(git branch --show-current)
npm i -g json
mkdir -p gh-pages/assets
mv dist gh-pages/assets
mkdir ../gh-pages
mv gh-pages ..
cat package.json | json version
NEW_VERSION=$(cat package.json | json version)
git checkout HEAD~ package.json
cat package.json | json version
OLD_VERSION=$(cat package.json | json version)
git checkout $GITHUB_SHA package.json
node -e 'if (!require("semver").gte(process.argv[1], process.argv[2])) process.exit(1)' $NEW_VERSION $OLD_VERSION || exit 0
git fetch --depth 1 origin gh-pages:gh-pages
git checkout -f gh-pages || git checkout --orphan gh-pages
rm -rf *
mv ../gh-pages/* .
find | grep -vE "^./.git(/|$)"
sed -i 's|\(baseurl:\s\+\)|\1//falsandtru.github.io|' _config.yml
git add -A
git diff --staged --exit-code || git commit -m "Update web contents"
git push origin gh-pages:gh-pages