feat(station): add metadata to external canisters (#418) #2570
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: 'Code validation' | |
on: | |
pull_request: | |
types: | |
- opened | |
- edited | |
- reopened | |
- synchronize | |
- labeled | |
merge_group: | |
types: [checks_requested] | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
env: | |
CARGO_TERM_COLOR: always | |
# When getting Rust dependencies, retry on network error: | |
CARGO_NET_RETRY: 10 | |
# Use the local .curlrc | |
CURL_HOME: . | |
jobs: | |
validate-commits: | |
name: 'validate-commits:required' | |
runs-on: ubuntu-latest | |
env: | |
TITLE: ${{ github.event.pull_request.title }} | |
steps: | |
- name: 'Checkout' | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
# Conditional steps for commit message check | |
- if: ${{ github.event_name != 'pull_request' }} | |
name: 'Setup Python' | |
uses: ./.github/actions/setup-python | |
- if: ${{ github.event_name != 'pull_request' }} | |
name: 'Install Commitzen' | |
run: pip install -U commitizen | |
- if: ${{ github.event_name != 'pull_request' }} | |
name: 'Check Commit Messages' | |
run: cz check --rev-range HEAD | |
# Conditional step for pull request title check | |
- if: ${{ github.event_name == 'pull_request' }} | |
name: 'Check PR Title' | |
run: | | |
if [[ "$TITLE" =~ ^(feat|fix|chore|build|ci|docs|style|refactor|perf|test)(\([-a-zA-Z0-9,]+\))\!?\: ]]; then | |
echo "PR Title passes" | |
else | |
echo "PR Title does not match conventions:" | |
echo " verb(scope): description" | |
echo "or for a breaking change:" | |
echo " verb(scope)!: description" | |
echo "For scope, please use the affected rust crate name(s) or 'ci' for infrastructure changes." | |
exit 1 | |
fi | |
# TODO(SDK-1297): dfx generate fails with remote canisters | |
validate-did-bindings: | |
name: 'validate-did-bindings:required' | |
runs-on: ubuntu-latest | |
steps: | |
- name: 'Checkout' | |
uses: actions/checkout@v4 | |
- name: 'Install dfx' | |
uses: dfinity/setup-dfx@main | |
- name: 'Run dfx generate' | |
run: | | |
dfx generate control_panel | |
dfx generate station | |
- name: 'Check that no file changed' | |
run: git diff --exit-code | |
validate-rust: | |
name: 'validate-rust:required' | |
runs-on: ubuntu-latest | |
steps: | |
- name: 'Checkout' | |
uses: actions/checkout@v4 | |
- name: 'Check code' | |
run: | | |
cargo fmt --all -- --check | |
cargo clippy --locked --verbose --tests --benches --workspace -- -D clippy::all | |
cargo clippy --locked --verbose --target wasm32-unknown-unknown -p control-panel -p station -p upgrader -- -D clippy::all | |
env: | |
RUST_BACKTRACE: 1 | |
validate-node: | |
name: 'validate-node:required' | |
runs-on: ubuntu-latest | |
steps: | |
- name: 'Checkout' | |
uses: actions/checkout@v4 | |
- name: 'Setup Node' | |
uses: ./.github/actions/setup-node | |
- name: 'Install Dependencies' | |
run: | | |
pnpm install --frozen-lockfile | |
- name: 'Check code' | |
run: | | |
pnpm lint | |
- name: 'Build code' | |
run: | | |
pnpm build | |
- name: 'Check typing' | |
run: | | |
pnpm type-check |