Files
pezkuwi-subxt/.github/workflows/update-artifacts.yml
T
Alexander Samusev e783d9f883 [ci] Run cronjob with app secrets (#1420)
* [ci] Run cronjob with app secrets

* rm github url

* move token creation closer to pr creation

* return checkout

* check that credentials work

* test gha

* add more test

* create test file

* rm tests

* add compression+decompression to avoid >100MB

* add shell field to action

* move zipped file to correct location

* strip binaries

---------

Co-authored-by: Tadeo hepperle <tadeo@do-mix.de>
2024-02-14 11:33:38 +01:00

66 lines
2.2 KiB
YAML

name: Update Artifacts
on:
workflow_dispatch: # Allows manual triggering
schedule:
- cron: "0 0 * * 1" # weekly on Monday at 00:00 UTC
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
check:
name: Renew Artifacts
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
# We run this (up-to-date) node locally to fetch metadata from it for the artifacts
- name: Use substrate and polkadot node binaries
uses: ./.github/workflows/actions/use-nodes
- name: Install Rust stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Rust Cache
uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3
# This starts a substrate node and runs a few subxt cli child processes to fetch metadata from it and generate code.
# In particular it generates:
# - 4 metadata (*.scale) files in the `artifacts` directory
# - a polkadot.rs file from the full metadata that is checked in integration tests
# - a polkadot.json in the `artifacts/demo_chain_specs` directory
- name: Fetch Artifacts
run: cargo run --bin artifacts
- name: Delete substrate node binary
run: rm ./substrate-node
- uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ secrets.SUBXT_PR_MAKER_APP_ID }}
private-key: ${{ secrets.SUBXT_PR_MAKER_APP_KEY }}
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
token: ${{ steps.app-token.outputs.token }}
base: master
branch: update-artifacts
commit-message: Update Artifacts (auto-generated)
branch-suffix: timestamp
title: Update Artifacts (auto-generated)
body: |
This PR updates the artifacts by fetching fresh metadata from a substrate node.
It also recreates the polkadot.rs file used in the integration tests.
It was created automatically by a Weekly GitHub Action Cronjob.