-
Notifications
You must be signed in to change notification settings - Fork 40
61 lines (56 loc) · 2.48 KB
/
fetch-external.yml
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
name: Chaindata Fetch External
on:
# runs at `0 minutes past the hour, every 6 hours`, starting at midnight UTC
schedule:
- cron: '0 0/6 * * *'
# can be run manually from the `Actions` tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow pushing commits
permissions:
contents: write
id-token: write
concurrency:
# only run 1 job per branch/pr/etc at a time
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
publish:
name: 'Fetch externals and push changes to repo'
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Setup pnpm
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
env:
# Workaround for `Setup Node` action causing the workflow to timeout
# Source: https://github.com/actions/setup-node/issues/733#issuecomment-1489952874
#
# https://github.com/actions/cache/blob/04f198bf0b2a39f7230a4304bf07747a0bddf146/tips-and-workarounds.md#cache-segment-restore-timeout
# -- note that actions/setup-node@3 [uses actions/[email protected]](https://github.com/actions/setup-node/blob/a4fcaaf314b117a40d694a35ee36461f8ff3c6e6/package-lock.json#L41)
# which has a [default timeout of 60 minutes](https://github.com/actions/toolkit/blob/457303960f03375db6f033e214b9f90d79c3fe5c/packages/cache/RELEASES.md#304),
# not 10 minutes! Let's reduce it further.
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 2
with:
node-version-file: 'package.json'
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Fetch external
run: pnpm fetch-external
- name: Commit changes
env:
CHAINDATA_CI_SUPERUSER_ACCESS_TOKEN: ${{ secrets.CHAINDATA_CI_SUPERUSER_ACCESS_TOKEN }}
run: |
git config --local --unset-all 'http.https://github.com/.extraheader'
git remote set-url origin https://x-access-token:${CHAINDATA_CI_SUPERUSER_ACCESS_TOKEN}@github.com/TalismanSociety/chaindata
git config user.name "chaindata-ci-superuser[bot]"
git config user.email "146698419+chaindata-ci-superuser[bot]@users.noreply.github.com"
if [[ "$(git status --porcelain=v2)" != "" ]]; then
git add .
git commit -m 'updated externals'
git push
fi