Skip to content

DEBUG: Try Node.js 20 like Creditcoin3 #336

DEBUG: Try Node.js 20 like Creditcoin3

DEBUG: Try Node.js 20 like Creditcoin3 #336

Workflow file for this run

/node-version: 18/node-version: 20/

Check failure on line 1 in .github/workflows/bench.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/bench.yml

Invalid workflow file

You have an error in your yaml syntax
---
/node-version: 18/node-version: 20/
name: BENCHMARK
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
# Controls when the action will run.
/node-version: 18/node-version: 20/
on:
/node-version: 18/node-version: 20/
pull_request:
/node-version: 18/node-version: 20/
branches: [testnet]
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
env:
/node-version: 18/node-version: 20/
RUNNER_VM_NAME: "github-runner-$GITHUB_RUN_ID-attempt-$GITHUB_RUN_ATTEMPT"
/node-version: 18/node-version: 20/
RESOURCE_GROUP: "github-runner-$GITHUB_RUN_ID-attempt-$GITHUB_RUN_ATTEMPT"
/node-version: 18/node-version: 20/
AZ_LOCATION: "westus3"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
jobs:
/node-version: 18/node-version: 20/
check-if-needed:
/node-version: 18/node-version: 20/
# To avoid endless loop in CI skip this job on the commit which
/node-version: 18/node-version: 20/
# auto-updates the weights and is generated further below.
/node-version: 18/node-version: 20/
if: ${{ github.event_name == 'pull_request' && github.triggering_actor != 'notaturkey' }}
/node-version: 18/node-version: 20/
runs-on: ubuntu-22.04
/node-version: 18/node-version: 20/
outputs:
/node-version: 18/node-version: 20/
needs-bench: ${{ steps.version-check.outputs.needs_bench }}
/node-version: 18/node-version: 20/
steps:
/node-version: 18/node-version: 20/
- uses: actions/checkout@v4
/node-version: 18/node-version: 20/
with:
/node-version: 18/node-version: 20/
fetch-depth: 0
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Check versions
/node-version: 18/node-version: 20/
id: version-check
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
./scripts/check-spec-increase.sh "remotes/origin/$GITHUB_BASE_REF" "HEAD"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
build-benchmarks:
/node-version: 18/node-version: 20/
runs-on: ubuntu-22.04
/node-version: 18/node-version: 20/
needs: check-if-needed
/node-version: 18/node-version: 20/
if: needs.check-if-needed.outputs.needs-bench == 1
/node-version: 18/node-version: 20/
steps:
/node-version: 18/node-version: 20/
- uses: actions/checkout@v4
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Inspect benchmark CI config
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
# WARNING: Command below may differ depending on which workflow config file
/node-version: 18/node-version: 20/
# your job is defined in !!! Don't copy&paste it blindly !!!
/node-version: 18/node-version: 20/
PALLETS_IN_CI_CONFIG=$(grep "PALLET:" .github/workflows/bench.yml | grep -v PALLETS_IN_CI_CONFIG | tr -d ' ' | cut -f2 -d: | sort | xargs)
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
PALLETS_IN_SOURCE=$(./scripts/check-parity-bw-extrinsics-benchmarks-weights.sh --show-pallets)
/node-version: 18/node-version: 20/
if [ "$PALLETS_IN_CI_CONFIG" != "$PALLETS_IN_SOURCE" ]; then
/node-version: 18/node-version: 20/
echo "FAIL: Pallet mismatch between source code and benchmark CI config"
/node-version: 18/node-version: 20/
echo "INFO: in source: '$PALLETS_IN_SOURCE'"
/node-version: 18/node-version: 20/
echo "INFO: CI config: '$PALLETS_IN_CI_CONFIG'"
/node-version: 18/node-version: 20/
exit 1
/node-version: 18/node-version: 20/
fi
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Set-Up
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
sudo apt-get update
/node-version: 18/node-version: 20/
sudo apt install -y cmake pkg-config libssl-dev git build-essential clang libclang-dev curl protobuf-compiler
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Configure rustc version
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
source ci/env
/node-version: 18/node-version: 20/
echo "RUSTC_VERSION=$RUSTC_VERSION" >> "$GITHUB_ENV"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Install Rust toolchain
/node-version: 18/node-version: 20/
uses: actions-rs/toolchain@v1
/node-version: 18/node-version: 20/
with:
/node-version: 18/node-version: 20/
toolchain: ${{ env.RUSTC_VERSION }}
/node-version: 18/node-version: 20/
target: wasm32-unknown-unknown
/node-version: 18/node-version: 20/
profile: minimal
/node-version: 18/node-version: 20/
override: true
/node-version: 18/node-version: 20/
- uses: Swatinem/rust-cache@v2
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Build benchmarks
/node-version: 18/node-version: 20/
uses: actions-rs/cargo@v1
/node-version: 18/node-version: 20/
with:
/node-version: 18/node-version: 20/
command: build
/node-version: 18/node-version: 20/
args: --release --features runtime-benchmarks
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Upload benchmark binary
/node-version: 18/node-version: 20/
uses: actions/upload-artifact@v4
/node-version: 18/node-version: 20/
with:
/node-version: 18/node-version: 20/
name: creditcoin-node
/node-version: 18/node-version: 20/
path: target/release/creditcoin-node
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
deploy-github-runner:
/node-version: 18/node-version: 20/
runs-on: ubuntu-22.04
/node-version: 18/node-version: 20/
needs: build-benchmarks
/node-version: 18/node-version: 20/
outputs:
/node-version: 18/node-version: 20/
runner_vm_name: ${{ steps.get-env.outputs.runner_vm_name }}
/node-version: 18/node-version: 20/
resource_group: ${{ steps.get-env.outputs.resource_group }}
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
steps:
/node-version: 18/node-version: 20/
- uses: actions/checkout@v4
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Install azure-cli
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
sudo apt remove azure-cli -y && sudo apt autoremove -y
/node-version: 18/node-version: 20/
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
/node-version: 18/node-version: 20/
sudo apt install -y jq
/node-version: 18/node-version: 20/
az version
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Authorize hosted-runner
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
mkdir -p ~/.ssh/
/node-version: 18/node-version: 20/
ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa
/node-version: 18/node-version: 20/
cat ~/.ssh/id_rsa.pub >> .github/authorized_keys
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Evaluate env vars
/node-version: 18/node-version: 20/
id: get-env
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
# WARNING: using env.RUNNER_VM_NAME directly in job outputs above
/node-version: 18/node-version: 20/
# doesn't evaluate the $GITHUB_RUN_ID reference
/node-version: 18/node-version: 20/
echo "runner_vm_name=${{ env.RUNNER_VM_NAME }}" >> "$GITHUB_OUTPUT"
/node-version: 18/node-version: 20/
echo "resource_group=${{ env.RESOURCE_GROUP }}" >> "$GITHUB_OUTPUT"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Provision VM
/node-version: 18/node-version: 20/
if: env.LC_GITHUB_REPO_ADMIN_TOKEN
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
echo "INFO: From ENVs: RUNNER_VM_NAME=${{ env.RUNNER_VM_NAME }}"
/node-version: 18/node-version: 20/
echo "INFO: From Step: RUNNER_VM_NAME=${{ steps.get-env.outputs.runner_vm_name }}"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
az login --service-principal --username "${{ secrets.AZURE_APP_ID }}" --password "${{ secrets.AZURE_APP_PASSWORD }}" --tenant "${{ secrets.AZURE_TENANT_ID }}"
/node-version: 18/node-version: 20/
az account set --subscription "Playground Subscription"
/node-version: 18/node-version: 20/
## az account set -s "${{ secrets.AZURE_SUBSCRIPTION_ID }}"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
# create resource group
/node-version: 18/node-version: 20/
echo "INFO: ${{ steps.get-env.outputs.resource_group }}"
/node-version: 18/node-version: 20/
az group create -n "${{ steps.get-env.outputs.resource_group }}" --location "${{ env.AZ_LOCATION }}"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
# RG Creditcoin-Test is in WestUS and the CPU quota is already full
/node-version: 18/node-version: 20/
# that's why specify a different region here
/node-version: 18/node-version: 20/
az deployment group create -g "${{ steps.get-env.outputs.resource_group }}" -f .github/runner.bicep \
/node-version: 18/node-version: 20/
--parameters location="${{ env.AZ_LOCATION }}" \
/node-version: 18/node-version: 20/
--parameters vmName="${{ steps.get-env.outputs.runner_vm_name }}" \
/node-version: 18/node-version: 20/
--parameters adminPasswordOrKey="$(cat .github/authorized_keys)" > output.json
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
# provision the GitHub Runner binary on the VM
/node-version: 18/node-version: 20/
# passing additional ENV values
/node-version: 18/node-version: 20/
SSH_USER_AT_HOSTNAME=$(jq -r '.properties.outputs.sshUserAtHostname.value' < output.json)
/node-version: 18/node-version: 20/
echo "INFO: $SSH_USER_AT_HOSTNAME"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
export LC_RUNNER_VM_NAME="${{ env.RUNNER_VM_NAME }}"
/node-version: 18/node-version: 20/
ssh -i ~/.ssh/id_rsa \
/node-version: 18/node-version: 20/
-o SendEnv=LC_GITHUB_REPO_ADMIN_TOKEN,LC_RUNNER_VM_NAME \
/node-version: 18/node-version: 20/
-o StrictHostKeyChecking=no "$SSH_USER_AT_HOSTNAME" < ./scripts/provision-github-runner.sh
/node-version: 18/node-version: 20/
env:
/node-version: 18/node-version: 20/
LC_GITHUB_REPO_ADMIN_TOKEN: ${{ secrets.GH_REPO_ADMIN_TOKEN }}
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
hardware-benchmarks:
/node-version: 18/node-version: 20/
# see https://gist.github.com/jonico/a94d03cac7a858e0613926d9f1bc7f2b
/node-version: 18/node-version: 20/
runs-on:
/node-version: 18/node-version: 20/
[self-hosted, "${{ needs.deploy-github-runner.outputs.runner_vm_name }}"]
/node-version: 18/node-version: 20/
# checkov:skip=CKV2_GHA_1:We need this for weights auto-update
/node-version: 18/node-version: 20/
permissions: write-all
/node-version: 18/node-version: 20/
needs:
/node-version: 18/node-version: 20/
- deploy-github-runner
/node-version: 18/node-version: 20/
steps:
/node-version: 18/node-version: 20/
- uses: actions/checkout@v4
/node-version: 18/node-version: 20/
with:
/node-version: 18/node-version: 20/
fetch-depth: 10
/node-version: 18/node-version: 20/
repository: ${{ github.event.pull_request.head.repo.full_name }}
/node-version: 18/node-version: 20/
ref: ${{ github.event.pull_request.head.ref }}
/node-version: 18/node-version: 20/
token: ${{ secrets.CREDITCOIN_GITHUB_API_TOKEN }}
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Set env
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
echo "HOME=/home/actions" >> "$GITHUB_ENV"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Download benchmark binary
/node-version: 18/node-version: 20/
uses: actions/download-artifact@v4
/node-version: 18/node-version: 20/
with:
/node-version: 18/node-version: 20/
name: creditcoin-node
/node-version: 18/node-version: 20/
path: target/release
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Restore executable permissions
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
chmod a+x ./target/release/creditcoin-node
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Check if runner machine meets chain's requirements
/node-version: 18/node-version: 20/
continue-on-error: true
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
./scripts/check-hardware.sh
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
# Run creditcoin pallet with lesser steps
/node-version: 18/node-version: 20/
- name: Creditcoin
/node-version: 18/node-version: 20/
shell: bash
/node-version: 18/node-version: 20/
continue-on-error: false
/node-version: 18/node-version: 20/
env:
/node-version: 18/node-version: 20/
STEPS: 8
/node-version: 18/node-version: 20/
REPEAT: 8
/node-version: 18/node-version: 20/
PALLET: creditcoin
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
./scripts/bench.sh -p "$PALLET" -b -r "$REPEAT" -s "$STEPS"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Offchain Task Scheduler
/node-version: 18/node-version: 20/
shell: bash
/node-version: 18/node-version: 20/
continue-on-error: false
/node-version: 18/node-version: 20/
env:
/node-version: 18/node-version: 20/
PALLET: offchain_task_scheduler
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
./scripts/bench.sh -p "$PALLET" -b
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Rewards
/node-version: 18/node-version: 20/
shell: bash
/node-version: 18/node-version: 20/
continue-on-error: false
/node-version: 18/node-version: 20/
env:
/node-version: 18/node-version: 20/
PALLET: rewards
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
./scripts/bench.sh -p "$PALLET" -b
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Commit changes to current branch
/node-version: 18/node-version: 20/
uses: EndBug/add-and-commit@v9
/node-version: 18/node-version: 20/
with:
/node-version: 18/node-version: 20/
author_name: gluwa-bot
/node-version: 18/node-version: 20/
author_email: creditcoin@gluwa.com
/node-version: 18/node-version: 20/
message: "Auto-update pallet weights"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Prepare commit for PR against dev
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
LAST_COMMIT=$(git rev-parse HEAD)
/node-version: 18/node-version: 20/
BRANCH_NAME=auto-update-weights-for-dev-${{ github.sha }}
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
git checkout -b "$BRANCH_NAME" origin/dev
/node-version: 18/node-version: 20/
git cherry-pick "$LAST_COMMIT"
/node-version: 18/node-version: 20/
git push origin "$BRANCH_NAME"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Open PR against dev
/node-version: 18/node-version: 20/
id: open_pr
/node-version: 18/node-version: 20/
uses: rematocorp/open-pull-request-action@v1
/node-version: 18/node-version: 20/
with:
/node-version: 18/node-version: 20/
github-token: ${{ secrets.CREDITCOIN_GITHUB_API_TOKEN }}
/node-version: 18/node-version: 20/
from-branch: auto-update-weights-for-dev-${{ github.sha }}
/node-version: 18/node-version: 20/
to-branch: dev
/node-version: 18/node-version: 20/
repository-owner: gluwa
/node-version: 18/node-version: 20/
repository: creditcoin
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: PR number against dev
/node-version: 18/node-version: 20/
run: echo ${{ steps.open_pr.outputs.pull_number }}
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
remove-github-runner:
/node-version: 18/node-version: 20/
runs-on: ubuntu-22.04
/node-version: 18/node-version: 20/
needs:
/node-version: 18/node-version: 20/
- deploy-github-runner
/node-version: 18/node-version: 20/
- hardware-benchmarks
/node-version: 18/node-version: 20/
if: ${{ always() && needs.deploy-github-runner.result != 'skipped' }}
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
steps:
/node-version: 18/node-version: 20/
- uses: actions/checkout@v4
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Evaluate env vars
/node-version: 18/node-version: 20/
id: get-env
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
# WARNING: using env.RUNNER_VM_NAME directly in job outputs above
/node-version: 18/node-version: 20/
# doesn't evaluate the $GITHUB_RUN_ID reference
/node-version: 18/node-version: 20/
echo "resource_group=${{ env.RESOURCE_GROUP }}" >> "$GITHUB_OUTPUT"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Install azure-cli
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
sudo apt remove azure-cli -y && sudo apt autoremove -y
/node-version: 18/node-version: 20/
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
/node-version: 18/node-version: 20/
az version
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Remove VM
/node-version: 18/node-version: 20/
run: |
/node-version: 18/node-version: 20/
echo "INFO: RUNNER_VM_NAME=${{ env.RUNNER_VM_NAME }}"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
az login --service-principal --username "${{ secrets.AZURE_APP_ID }}" --password "${{ secrets.AZURE_APP_PASSWORD }}" --tenant "${{ secrets.AZURE_TENANT_ID }}"
/node-version: 18/node-version: 20/
az account set --subscription "Playground Subscription"
/node-version: 18/node-version: 20/
az group delete --yes -n "${{ steps.get-env.outputs.resource_group }}"
/node-version: 18/node-version: 20/
/node-version: 18/node-version: 20/
- name: Upload logs
/node-version: 18/node-version: 20/
uses: actions/upload-artifact@v4
/node-version: 18/node-version: 20/
if: always()
/node-version: 18/node-version: 20/
with:
/node-version: 18/node-version: 20/
name: "Azure resources"
/node-version: 18/node-version: 20/
path: azure_resource_list.json