Skip to content
This repository was archived by the owner on Aug 29, 2023. It is now read-only.

Commit 6438629

Browse files
galarghachingbrain
andcommitted
deploy JS unified CI script (#274)
* deploy JS unified CI script * trust workflows published in ipfs org * use hash for codecov action * use actions/checkout@v2 in the js workflow * use codecov/[email protected] in the js workflow * Apply codecov suggestions from code review Co-authored-by: Alex Potsides <[email protected]> Co-authored-by: Alex Potsides <[email protected]>
1 parent 816b8a7 commit 6438629

File tree

4 files changed

+169
-2
lines changed

4 files changed

+169
-2
lines changed

.github/workflows/check-3rd-party.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ for line in `sed -ne 's/[[:space:]-]*uses:[[:space:]]*//p' $1 | sed -e 's/\s*#.*
1111
# - .: local workflows
1212
# "actions": workflows authored by GitHub
1313
# "protocol": workflows published in the protocol org
14-
if [[ $author == "." || $author == "actions" || $author == "protocol" ]]; then continue; fi
14+
# "ipfs": workflows published in the ipfs org
15+
if [[ $author == "." || $author == "actions" || $author == "protocol" || $author == "ipfs" ]]; then continue; fi
1516
version=`echo $line | awk -F@ '{print $2}' | awk '{print $1}'`
1617
if ! [[ "$version" =~ ^[a-f0-9]{40}$ ]]; then
1718
status=1
1819
echo "$FILE includes $line and doesn't use commit hash"
1920
fi
20-
done
21+
done
2122

2223
exit $status

configs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ This directory contains config files used for workflow dispatch.
55
| name | description |
66
| --- | --- |
77
| go | repositories containing Go code |
8+
| js | repositories containing JS code |
89
| testing | repositories used for testing unified CI workflows |
910

1011
## Adding new repository to existing config file

configs/js.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"defaults": {
3+
"files": [
4+
".github/workflows/automerge.yml",
5+
".github/workflows/js-test-and-release.yml"
6+
]
7+
},
8+
"repositories": [
9+
{ "target": "ipfs/js-blockstore-core" },
10+
{ "target": "libp2p/js-libp2p-crypto" },
11+
{ "target": "libp2p/js-libp2p-interfaces" },
12+
{ "target": "libp2p/js-libp2p-tcp" }
13+
]
14+
}
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
name: test & maybe release
2+
on:
3+
push:
4+
branches:
5+
- $default-branch # with #262 - ${{{ github.default_branch }}}
6+
pull_request:
7+
branches:
8+
- $default-branch # with #262 - ${{{ github.default_branch }}}
9+
10+
jobs:
11+
12+
check:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v2
16+
- uses: actions/setup-node@v2
17+
with:
18+
node-version: lts/*
19+
- uses: ipfs/aegir/actions/cache-node-modules@master
20+
- run: npm run --if-present lint
21+
- run: npm run --if-present dep-check
22+
23+
test-node:
24+
needs: check
25+
runs-on: ${{ matrix.os }}
26+
strategy:
27+
matrix:
28+
os: [windows-latest, ubuntu-latest, macos-latest]
29+
node: [16]
30+
fail-fast: true
31+
steps:
32+
- uses: actions/checkout@v2
33+
- uses: actions/setup-node@v2
34+
with:
35+
node-version: ${{ matrix.node }}
36+
- uses: ipfs/aegir/actions/cache-node-modules@master
37+
- run: npm run --if-present test:node
38+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
39+
with:
40+
directory: ./.nyc_output
41+
flags: node
42+
43+
test-chrome:
44+
needs: check
45+
runs-on: ubuntu-latest
46+
steps:
47+
- uses: actions/checkout@v2
48+
- uses: actions/setup-node@v2
49+
with:
50+
node-version: lts/*
51+
- uses: ipfs/aegir/actions/cache-node-modules@master
52+
- run: npm run --if-present test:chrome
53+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
54+
with:
55+
directory: ./.nyc_output
56+
flags: chrome
57+
58+
test-chrome-webworker:
59+
needs: check
60+
runs-on: ubuntu-latest
61+
steps:
62+
- uses: actions/checkout@v2
63+
- uses: actions/setup-node@v2
64+
with:
65+
node-version: lts/*
66+
- uses: ipfs/aegir/actions/cache-node-modules@master
67+
- run: npm run --if-present test:chrome-webworker
68+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
69+
with:
70+
directory: ./.nyc_output
71+
flags: chrome-webworker
72+
73+
test-firefox:
74+
needs: check
75+
runs-on: ubuntu-latest
76+
steps:
77+
- uses: actions/checkout@v2
78+
- uses: actions/setup-node@v2
79+
with:
80+
node-version: lts/*
81+
- uses: ipfs/aegir/actions/cache-node-modules@master
82+
- run: npm run --if-present test:firefox
83+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
84+
with:
85+
directory: ./.nyc_output
86+
flags: firefox
87+
88+
test-firefox-webworker:
89+
needs: check
90+
runs-on: ubuntu-latest
91+
steps:
92+
- uses: actions/checkout@v2
93+
- uses: actions/setup-node@v2
94+
with:
95+
node-version: lts/*
96+
- uses: ipfs/aegir/actions/cache-node-modules@master
97+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
98+
with:
99+
directory: ./.nyc_output
100+
flags: firefox-webworker
101+
102+
test-electron-main:
103+
needs: check
104+
runs-on: ubuntu-latest
105+
steps:
106+
- uses: actions/checkout@v2
107+
- uses: actions/setup-node@v2
108+
with:
109+
node-version: lts/*
110+
- uses: ipfs/aegir/actions/cache-node-modules@master
111+
- run: npx xvfb-maybe npm run --if-present test:electron-main
112+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
113+
with:
114+
directory: ./.nyc_output
115+
flags: electron-main
116+
117+
test-electron-renderer:
118+
needs: check
119+
runs-on: ubuntu-latest
120+
steps:
121+
- uses: actions/checkout@v2
122+
- uses: actions/setup-node@v2
123+
with:
124+
node-version: lts/*
125+
- uses: ipfs/aegir/actions/cache-node-modules@master
126+
- run: npx xvfb-maybe npm run --if-present test:electron-renderer
127+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
128+
with:
129+
directory: ./.nyc_output
130+
flags: electron-renderer
131+
132+
release:
133+
needs: [test-node, test-chrome, test-chrome-webworker, test-firefox, test-firefox-webworker, test-electron-main, test-electron-renderer]
134+
runs-on: ubuntu-latest
135+
if: github.event_name == 'push' && github.ref == 'refs/heads/$default-branch' # with #262 - 'refs/heads/${{{ github.default_branch }}}'
136+
steps:
137+
- uses: actions/checkout@v2
138+
with:
139+
fetch-depth: 0
140+
- uses: actions/setup-node@v2
141+
with:
142+
node-version: lts/*
143+
- uses: ipfs/aegir/actions/cache-node-modules@master
144+
- uses: ipfs/aegir/actions/docker-login@master
145+
with:
146+
docker-token: ${{ secrets.DOCKER_USERNAME }}
147+
docker-username: ${{ secrets.DOCKER_USERNAME }}
148+
- run: npm run --if-present release
149+
env:
150+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
151+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

0 commit comments

Comments
 (0)