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

Commit a73735b

Browse files
authored
chore: replace Travis with Github Actions (#150)
* add test-and-release github action * delete travis.yml * add installation of 'node-pre-gyp' * add automerge github action * update test-and-release github action with 'test-browser'
1 parent b8d7254 commit a73735b

File tree

3 files changed

+218
-35
lines changed

3 files changed

+218
-35
lines changed

.github/workflows/automerge.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Automatically merge pull requests opened by web3-bot, as soon as (and only if) all tests pass.
2+
# This reduces the friction associated with updating with our workflows.
3+
4+
on: [ pull_request ]
5+
name: Automerge
6+
7+
jobs:
8+
automerge-check:
9+
if: github.event.pull_request.user.login == 'web3-bot'
10+
runs-on: ubuntu-latest
11+
outputs:
12+
status: ${{ steps.should-automerge.outputs.status }}
13+
steps:
14+
- uses: actions/checkout@v2
15+
with:
16+
fetch-depth: 0
17+
- name: Check if we should automerge
18+
id: should-automerge
19+
run: |
20+
for commit in $(git rev-list --first-parent origin/${{ github.event.pull_request.base.ref }}..${{ github.event.pull_request.head.sha }}); do
21+
committer=$(git show --format=$'%ce' -s $commit)
22+
echo "Committer: $committer"
23+
if [[ "$committer" != "[email protected]" ]]; then
24+
echo "Commit $commit wasn't committed by web3-bot, but by $committer."
25+
echo "::set-output name=status::false"
26+
exit
27+
fi
28+
done
29+
echo "::set-output name=status::true"
30+
automerge:
31+
needs: automerge-check
32+
runs-on: ubuntu-latest
33+
# The check for the user is redundant here, as this job depends on the automerge-check job,
34+
# but it prevents this job from spinning up, just to be skipped shortly after.
35+
if: github.event.pull_request.user.login == 'web3-bot' && needs.automerge-check.outputs.status == 'true'
36+
steps:
37+
- name: Wait on tests
38+
uses: lewagon/wait-on-check-action@bafe56a6863672c681c3cf671f5e10b20abf2eaa # v0.2
39+
with:
40+
ref: ${{ github.event.pull_request.head.sha }}
41+
repo-token: ${{ secrets.GITHUB_TOKEN }}
42+
wait-interval: 10
43+
running-workflow-name: 'automerge' # the name of this job
44+
- name: Merge PR
45+
uses: pascalgn/automerge-action@741c311a47881be9625932b0a0de1b0937aab1ae # v0.13.1
46+
env:
47+
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
48+
MERGE_LABELS: ""
49+
MERGE_METHOD: "squash"
50+
MERGE_DELETE_BRANCH: true
Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
name: test & maybe release
2+
on:
3+
push:
4+
branches:
5+
- master # with #262 - ${{{ github.default_branch }}}
6+
pull_request:
7+
branches:
8+
- master # 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 install -g node-pre-gyp
38+
- run: npm run --if-present test:node
39+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
40+
with:
41+
directory: ./.nyc_output
42+
flags: node
43+
44+
test-browser:
45+
needs: check
46+
runs-on: ubuntu-latest
47+
steps:
48+
- uses: actions/checkout@v2
49+
- uses: actions/setup-node@v2
50+
with:
51+
node-version: lts/*
52+
- uses: ipfs/aegir/actions/cache-node-modules@master
53+
- run: npm run --if-present test:browser
54+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
55+
with:
56+
directory: ./.nyc_output
57+
flags: browser
58+
59+
test-chrome:
60+
needs: check
61+
runs-on: ubuntu-latest
62+
steps:
63+
- uses: actions/checkout@v2
64+
- uses: actions/setup-node@v2
65+
with:
66+
node-version: lts/*
67+
- uses: ipfs/aegir/actions/cache-node-modules@master
68+
- run: npm run --if-present test:chrome
69+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
70+
with:
71+
directory: ./.nyc_output
72+
flags: chrome
73+
74+
test-chrome-webworker:
75+
needs: check
76+
runs-on: ubuntu-latest
77+
steps:
78+
- uses: actions/checkout@v2
79+
- uses: actions/setup-node@v2
80+
with:
81+
node-version: lts/*
82+
- uses: ipfs/aegir/actions/cache-node-modules@master
83+
- run: npm run --if-present test:chrome-webworker
84+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
85+
with:
86+
directory: ./.nyc_output
87+
flags: chrome-webworker
88+
89+
test-firefox:
90+
needs: check
91+
runs-on: ubuntu-latest
92+
steps:
93+
- uses: actions/checkout@v2
94+
- uses: actions/setup-node@v2
95+
with:
96+
node-version: lts/*
97+
- uses: ipfs/aegir/actions/cache-node-modules@master
98+
- run: npm run --if-present test:firefox
99+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
100+
with:
101+
directory: ./.nyc_output
102+
flags: firefox
103+
104+
test-firefox-webworker:
105+
needs: check
106+
runs-on: ubuntu-latest
107+
steps:
108+
- uses: actions/checkout@v2
109+
- uses: actions/setup-node@v2
110+
with:
111+
node-version: lts/*
112+
- uses: ipfs/aegir/actions/cache-node-modules@master
113+
- run: npm run --if-present test:firefox-webworker
114+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
115+
with:
116+
directory: ./.nyc_output
117+
flags: firefox-webworker
118+
119+
test-electron-main:
120+
needs: check
121+
runs-on: ubuntu-latest
122+
steps:
123+
- uses: actions/checkout@v2
124+
- uses: actions/setup-node@v2
125+
with:
126+
node-version: lts/*
127+
- uses: ipfs/aegir/actions/cache-node-modules@master
128+
- run: npx xvfb-maybe npm run --if-present test:electron-main
129+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
130+
with:
131+
directory: ./.nyc_output
132+
flags: electron-main
133+
134+
test-electron-renderer:
135+
needs: check
136+
runs-on: ubuntu-latest
137+
steps:
138+
- uses: actions/checkout@v2
139+
- uses: actions/setup-node@v2
140+
with:
141+
node-version: lts/*
142+
- uses: ipfs/aegir/actions/cache-node-modules@master
143+
- run: npx xvfb-maybe npm run --if-present test:electron-renderer
144+
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0
145+
with:
146+
directory: ./.nyc_output
147+
flags: electron-renderer
148+
149+
release:
150+
needs: [test-node, test-browser, test-chrome, test-chrome-webworker, test-firefox, test-firefox-webworker, test-electron-main, test-electron-renderer]
151+
runs-on: ubuntu-latest
152+
if: github.event_name == 'push' && github.ref == 'refs/heads/master' # with #262 - 'refs/heads/${{{ github.default_branch }}}'
153+
steps:
154+
- uses: actions/checkout@v2
155+
with:
156+
fetch-depth: 0
157+
- uses: actions/setup-node@v2
158+
with:
159+
node-version: lts/*
160+
- uses: ipfs/aegir/actions/cache-node-modules@master
161+
- uses: ipfs/aegir/actions/docker-login@master
162+
with:
163+
docker-token: ${{ secrets.DOCKER_TOKEN }}
164+
docker-username: ${{ secrets.DOCKER_USERNAME }}
165+
- run: npm run --if-present release
166+
env:
167+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
168+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

.travis.yml

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

0 commit comments

Comments
 (0)