Chaindata Fetch External #289
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 'chore: updated externals' | |
git push | |
fi |