From 5e6bda0172ea186427379697eb1cda87bd98a115 Mon Sep 17 00:00:00 2001 From: zeme-iohk Date: Wed, 1 Feb 2023 13:20:58 +0700 Subject: [PATCH] Moved Script Evaluation Test to GHA (#5095) --- .github/workflows/add-triage-label.yml | 7 ++-- .github/workflows/benchmark.yml | 10 +++-- .github/workflows/hlint.yml | 19 ++++++--- .../{test.yml => pre-commit-check.yml} | 14 ++++--- .github/workflows/script-evaluation-test.yml | 40 +++++++++++++++++++ build/buildkite/script-evaluation-test.yml | 25 ------------ 6 files changed, 73 insertions(+), 42 deletions(-) rename .github/workflows/{test.yml => pre-commit-check.yml} (52%) create mode 100644 .github/workflows/script-evaluation-test.yml delete mode 100644 build/buildkite/script-evaluation-test.yml diff --git a/.github/workflows/add-triage-label.yml b/.github/workflows/add-triage-label.yml index 6c9bc6b2eb1..554c366bbab 100644 --- a/.github/workflows/add-triage-label.yml +++ b/.github/workflows/add-triage-label.yml @@ -1,16 +1,17 @@ -name: Add triage label +name: Add Triage Label on: issues: types: - reopened - opened jobs: - add_triage_label: + add-triage-label: runs-on: ubuntu-latest permissions: issues: write steps: - - uses: actions/github-script@v6 + - name: Run + uses: actions/github-script@v6 with: script: | github.rest.issues.addLabels({ diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index da27610f4ea..999ba4920d7 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -1,8 +1,11 @@ -name: Benchmarking +name: Benchmark on: issue_comment: types: [created] +concurrency: + group: plutus-benchmark + jobs: benchmark: runs-on: [self-hosted, plutus-benchmark] @@ -87,8 +90,9 @@ jobs: core.setFailed(`Error: ${error}`); } - - run: | - nix develop --no-warn-dirty --accept-flake-config --command bash ./scripts/ci-plutus-benchmark.sh + - name: Run + run: | + nix develop --no-warn-dirty --accept-flake-config --command bash ./scripts/ci-plutus-benchmark.sh if: success() env: GITHUB_TOKEN: ${{ github.token }} diff --git a/.github/workflows/hlint.yml b/.github/workflows/hlint.yml index 386b96573ce..059cdd41ad4 100644 --- a/.github/workflows/hlint.yml +++ b/.github/workflows/hlint.yml @@ -11,18 +11,25 @@ jobs: hlint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: haskell/actions/hlint-setup@v2 + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup HLint + uses: haskell/actions/hlint-setup@v2 with: version: '3.4' - - uses: nixbuild/nix-quick-install-action@v21 + + - name: Quick Install Nix + uses: nixbuild/nix-quick-install-action@v21 with: nix_conf: | experimental-features = nix-command flakes accept-flake-config = true - - name: Build HLint - run: nix build .#hlint - - name: Run HLint + + - name: Build + run: nix build .#hlint + + - name: Run uses: haskell/actions/hlint-run@v1 with: hlint-bin: "./result/bin/hlint --hint=./.github/.hlint.yaml" diff --git a/.github/workflows/test.yml b/.github/workflows/pre-commit-check.yml similarity index 52% rename from .github/workflows/test.yml rename to .github/workflows/pre-commit-check.yml index d9efa1c36b5..7fd864c3df1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/pre-commit-check.yml @@ -1,15 +1,19 @@ -name: "Tests" +name: Pre Commit Check on: pull_request: jobs: - nix-sanity-checks: + pre-commit-check: runs-on: [ubuntu-latest] steps: - - uses: actions/checkout@v3 - - uses: nixbuild/nix-quick-install-action@v21 + - name: Checkout + uses: actions/checkout@v3 + + - name: Quick Install Nix + uses: nixbuild/nix-quick-install-action@v21 with: nix_conf: | experimental-features = nix-command flakes accept-flake-config = true - - name: Pre-commit check + + - name: Run run: nix build .#pre-commit-check diff --git a/.github/workflows/script-evaluation-test.yml b/.github/workflows/script-evaluation-test.yml new file mode 100644 index 00000000000..826539df5d3 --- /dev/null +++ b/.github/workflows/script-evaluation-test.yml @@ -0,0 +1,40 @@ +# A nightly job which downloads script evaluation dumps from S3 and runs a regression test. +name: Script Evaluation Test +on: + schedule: + - cron: 30 3 * * * # 3:30am every day + +concurrency: + group: script-evaluation-test + # We only want at most one evaluation test running at a time + cancel-in-progress: true + +jobs: + script-evaluation-test: + runs-on: [self-hosted, plutus-benchmark] + + steps: + - name: Checkout + uses: actions/checkout@v3.3.0 + + - name: Download and Unzip Dump Files + run: | + export LOCAL_DIR="$HOME/mainnet-script-dump-downloaded" + nix develop --no-warn-dirty --accept-flake-config --command \ + bash ./scripts/s3-sync-unzip.sh s3://plutus/mainnet-script-dump/ \*.event.bz2 + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: us-east-1 + AWS_ENDPOINT_URL: https://s3.devx.iog.io + + - name: Run + # Run the test cases sequentially. This ensures we don't need to simultaneously store + # multiple `ScriptEvaluationEvents`, which are large, in memory. Each test case + # contains many script evaluation events, and those are run in parallel based on + # the number of available processors. + run: | + export EVENT_DUMP_DIR="$HOME/mainnet-script-dump-downloaded" + nix run .#x86_64-linux.plutus.library.plutus-project-924.hsPkgs.plutus-ledger-api.components.exes.evaluation-test -- --num-threads=1 + + diff --git a/build/buildkite/script-evaluation-test.yml b/build/buildkite/script-evaluation-test.yml deleted file mode 100644 index 4f561910670..00000000000 --- a/build/buildkite/script-evaluation-test.yml +++ /dev/null @@ -1,25 +0,0 @@ -# A nightly job which downloads script evaluation dumps from S3 and runs a regression test. -steps: - - label: "Download and unzip dump files" - command: | - nix-shell --run 'LOCAL_DIR=$HOME/mainnet-script-dump-downloaded ./scripts/s3-sync-unzip.sh s3://plutus/mainnet-script-dump/ *.event.bz2' -# TODO(std) check that this works -# nix develop --command 'LOCAL_DIR=$HOME/mainnet-script-dump-downloaded ./scripts/s3-sync-unzip.sh s3://plutus/mainnet-script-dump/ *.event.bz2' - concurrency: 1 - concurrency_group: "plutus-script-evaluation" - agents: - queue: "plutus" - - wait - - label: "Script evaluation test" - # Run the test cases sequentially. This ensures we don't need to simultaneously store - # multiple `ScriptEvaluationEvents`, which are large, in memory. Each test case - # contains many script evaluation events, and those are run in parallel based on - # the number of available processors. - command: | - nix-shell --run 'cabal update && EVENT_DUMP_DIR=$HOME/mainnet-script-dump-downloaded cabal v2-run plutus-ledger-api:evaluation-test -- --num-threads=1' -# TODO(std) check that this works -# nix develop --command 'cabal update && EVENT_DUMP_DIR=$HOME/mainnet-script-dump-downloaded cabal v2-run plutus-ledger-api:evaluation-test -- --num-threads=1' - concurrency: 1 - concurrency_group: "plutus-script-evaluation" - agents: - queue: "plutus"