Update run-docker-unit-tests.yml #22
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: run Perf Test and collect data | |
env: | |
#docker pull ghcr.io/meta-introspector/o1js/o1js-perf-unit-test:docker-image-unit-test-clean | |
default_image: "ghcr.io/meta-introspector/o1js/o1js-perf-unit-test:docker-image-unit-test-clean" | |
container_name: "unit-tests" | |
on: | |
workflow_dispatch: | |
inputs: | |
image_url: | |
description: 'Docker url to execute' | |
default: "ghcr.io/meta-introspector/o1js/o1js-perf-unit-test:docker-image-unit-test-clean" | |
push: | |
branches: | |
# add your branch here to auto trigger on push | |
#- "feature/just_test" | |
#- "feature/rebase" | |
- "feature/unit-test-clean" | |
# pull_request: | |
# branches: [ "collect-perf" ] | |
jobs: | |
build: | |
strategy: | |
matrix: | |
tests: | |
# - "/app/src/lib/util/base58.unit-test.ts" | |
# - "/app/src/lib/ml/consistency.unit-test.ts" | |
# - "/app/src/lib/mina/account-update.unit-test.ts" | |
# - "/app/src/lib/mina/hash-input.unit-test.ts" | |
# - "/app/src/lib/mina/mina.unit-test.ts" | |
# - "/app/src/lib/mina/actions/offchain-contract.unit-test.ts" | |
# - "/app/src/lib/mina/actions/batch-reducer.unit-test.ts" | |
# - "/app/src/lib/mina/actions/batch-reducer-program.unit-test.ts" | |
# - "/app/src/lib/mina/test/dynamic-call.unit-test.ts" | |
# - "/app/src/lib/mina/token/forest-iterator.unit-test.ts" | |
# - "/app/src/lib/mina/token/token-contract.unit-test.ts" | |
# - "/app/src/lib/mina/fetch.unit-test.ts" | |
# - "/app/src/lib/mina/account-update-layout.unit-test.ts" | |
# - "/app/src/lib/proof-system/proof-system.unit-test.ts" | |
# - "/app/src/lib/proof-system/sideloaded.unit-test.ts" | |
# - "/app/src/lib/provable/test/bitwise.unit-test.ts" | |
# - "/app/src/lib/provable/test/base64.unit-test.ts" | |
# - "/app/src/lib/provable/test/field.unit-test.ts" | |
# - "/app/src/lib/provable/test/nullifier.unit-test.ts" | |
# - "/app/src/lib/provable/test/provable.unit-test.ts" | |
# - "/app/src/lib/provable/test/sha256.unit-test.ts" | |
# - "/app/src/lib/provable/test/string.unit-test.ts" | |
# - "/app/src/lib/provable/test/range-check.unit-test.ts" | |
# - "/app/src/lib/provable/test/foreign-field.unit-test.ts" | |
# - "/app/src/lib/provable/test/group.unit-test.ts" | |
# - "/app/src/lib/provable/test/custom-gates-recursion.unit-test.ts" | |
# - "/app/src/lib/provable/test/foreign-curve.unit-test.ts" | |
# - "/app/src/lib/provable/test/foreign-field-gadgets.unit-test.ts" | |
# - "/app/src/lib/provable/test/elliptic-curve.unit-test.ts" | |
# - "/app/src/lib/provable/test/lookup.unit-test.ts" | |
# - "/app/src/lib/provable/test/ecdsa.unit-test.ts" | |
# - "/app/src/lib/provable/test/arithmetic.unit-test.ts" | |
# - "/app/src/lib/provable/test/primitives.unit-test.ts" | |
# - "/app/src/lib/provable/test/keccak.unit-test.ts" | |
# - "/app/src/lib/provable/test/struct.unit-test.ts" | |
# - "/app/src/lib/provable/test/merkle-tree.unit-test.ts" | |
# - "/app/src/lib/testing/testing.unit-test.ts" | |
# - "/app/src/mina-signer/tests/verify-in-snark.unit-test.ts" | |
# - "/app/src/mina-signer/tests/zkapp.unit-test.ts" | |
# - "/app/src/mina-signer/src/sign-legacy.unit-test.ts" | |
# - "/app/src/mina-signer/src/transaction-hash.unit-test.ts" | |
# - "/app/src/mina-signer/src/signature.unit-test.ts" | |
# - "/app/src/mina-signer/src/sign-zkapp-command.unit-test.ts" | |
# - "/app/src/bindings/lib/binable.unit-test.ts" | |
# - "/app/src/bindings/crypto/bigint.unit-test.ts" | |
# - "/app/src/bindings/crypto/finite-field.unit-test.ts" | |
# - "/app/src/bindings/crypto/glv.unit-test.ts" | |
# - "/app/src/bindings/crypto/poseidon.unit-test.ts" | |
# - "/app/src/bindings/crypto/bindings/bindings.unit-test.ts" | |
# - "/app/src/bindings/crypto/elliptic-curve.unit-test.ts" | |
- "/app/dist/node/lib/util/base58.unit-test.js" | |
- "/app/dist/node/lib/ml/consistency.unit-test.js" | |
- "/app/dist/node/lib/mina/account-update.unit-test.js" | |
# - "/app/dist/node/lib/mina/hash-input.unit-test.js" | |
# - "/app/dist/node/lib/mina/mina.unit-test.js" | |
# - "/app/dist/node/lib/mina/actions/offchain-contract.unit-test.js" | |
# - "/app/dist/node/lib/mina/actions/batch-reducer.unit-test.js" | |
# - "/app/dist/node/lib/mina/actions/batch-reducer-program.unit-test.js" | |
# - "/app/dist/node/lib/mina/test/dynamic-call.unit-test.js" | |
# - "/app/dist/node/lib/mina/token/forest-iterator.unit-test.js" | |
# - "/app/dist/node/lib/mina/token/token-contract.unit-test.js" | |
# - "/app/dist/node/lib/mina/fetch.unit-test.js" | |
# - "/app/dist/node/lib/mina/account-update-layout.unit-test.js" | |
# - "/app/dist/node/lib/proof-system/proof-system.unit-test.js" | |
# - "/app/dist/node/lib/proof-system/sideloaded.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/bitwise.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/base64.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/field.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/nullifier.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/provable.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/sha256.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/string.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/range-check.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/foreign-field.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/group.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/custom-gates-recursion.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/foreign-curve.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/foreign-field-gadgets.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/elliptic-curve.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/lookup.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/ecdsa.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/arithmetic.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/primitives.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/keccak.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/struct.unit-test.js" | |
# - "/app/dist/node/lib/provable/test/merkle-tree.unit-test.js" | |
# - "/app/dist/node/lib/testing/testing.unit-test.js" | |
# - "/app/dist/node/mina-signer/tests/verify-in-snark.unit-test.js" | |
# - "/app/dist/node/mina-signer/tests/zkapp.unit-test.js" | |
# - "/app/dist/node/mina-signer/src/sign-legacy.unit-test.js" | |
# - "/app/dist/node/mina-signer/src/transaction-hash.unit-test.js" | |
# - "/app/dist/node/mina-signer/src/signature.unit-test.js" | |
# - "/app/dist/node/mina-signer/src/sign-zkapp-command.unit-test.js" | |
# - "/app/dist/node/bindings/lib/binable.unit-test.js" | |
# - "/app/dist/node/bindings/crypto/bigint.unit-test.js" | |
# - "/app/dist/node/bindings/crypto/finite-field.unit-test.js" | |
# - "/app/dist/node/bindings/crypto/glv.unit-test.js" | |
# - "/app/dist/node/bindings/crypto/poseidon.unit-test.js" | |
# - "/app/dist/node/bindings/crypto/bindings/bindings.unit-test.js" | |
# - "/app/dist/node/bindings/crypto/elliptic-curve.unit-test.js" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Sets NAME | |
env: | |
name: "${{matrix.tests}}" | |
run: | | |
TEST_NAME1=`echo $name | sed -e 's!/!-!g' ` | |
echo "TEST_NAME=test${TEST_NAME1}" >> $GITHUB_ENV | |
# we need recursive code here because we replace the existing docker container | |
- uses: meta-introspector/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Login to GHCR | |
uses: meta-introspector/login-action@v1 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: pull the image | |
run: docker pull ${{ inputs.image_url || env.default_image }} | |
- name: run the Docker build locally using pulled image | |
run: TESTS=${{matrix.tests}} docker compose build ${{ env.container_name }} | |
env: | |
DOCKER_IMAGE_URL: ${{ inputs.image_url || env.default_image}} | |
- name: run the Docker tests | |
run: TESTS=${{matrix.tests}} docker compose up ${{ env.container_name }} | |
env: | |
DOCKER_IMAGE_URL: ${{ inputs.image_url || env.default_image}} | |
- name: docker cp results | |
run: docker compose cp ${{ env.container_name }}:/tmp/perf.data.tar.gz perf.data.tar.gz | |
- name: Archive results | |
uses: meta-introspector/upload-artifact@v4 | |
with: | |
name: ${{ env.TEST_NAME }}.perf.data.tar.gz | |
path: perf.data.tar.gz | |
- name: delete the results | |
run: rm -rf /tmp/perf* | |
- name: delete the container | |
run: | | |
docker compose down |