From 86148a7ea645d8bcc6a166c57de073c391c5b033 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Test=C3=A9?= Date: Tue, 14 May 2024 15:28:07 +0200 Subject: [PATCH] WIP: run workflow based on file changes --- .github/workflows/aws_tfhe_gpu_tests.yml | 15 ++- .github/workflows/aws_tfhe_zk_pok_tests.yml | 105 +++++++++++++++++ .github/workflows/aws_trivium_tests.yml | 106 ++++++++++++++++++ .github/workflows/ci_dispatch.yml | 4 +- ..._randomness_tests.yml => csprng_tests.yml} | 22 ++-- 5 files changed, 240 insertions(+), 12 deletions(-) create mode 100644 .github/workflows/aws_tfhe_zk_pok_tests.yml create mode 100644 .github/workflows/aws_trivium_tests.yml rename .github/workflows/{csprng_randomness_tests.yml => csprng_tests.yml} (86%) diff --git a/.github/workflows/aws_tfhe_gpu_tests.yml b/.github/workflows/aws_tfhe_gpu_tests.yml index 260ff11185..318b5f01bf 100644 --- a/.github/workflows/aws_tfhe_gpu_tests.yml +++ b/.github/workflows/aws_tfhe_gpu_tests.yml @@ -15,7 +15,20 @@ env: on: # Allows you to run this workflow manually from the Actions tab as an alternative. workflow_dispatch: - pull_request: + workflow_call: + secrets: + SLAB_ACTION_TOKEN: + required: true + SLAB_BASE_URL: + required: true + JOB_SECRET: + required: true + SLACK_CHANNEL: + required: true + BOT_USERNAME: + required: true + SLACK_WEBHOOK: + required: true jobs: setup-instance: diff --git a/.github/workflows/aws_tfhe_zk_pok_tests.yml b/.github/workflows/aws_tfhe_zk_pok_tests.yml new file mode 100644 index 0000000000..8dc6871073 --- /dev/null +++ b/.github/workflows/aws_tfhe_zk_pok_tests.yml @@ -0,0 +1,105 @@ +name: AWS Tests for tfhe-zk-pok crate + +env: + CARGO_TERM_COLOR: always + ACTION_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + RUSTFLAGS: "-C target-cpu=native" + RUST_BACKTRACE: "full" + RUST_MIN_STACK: "8388608" + SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }} + SLACK_ICON: https://pbs.twimg.com/profile_images/1274014582265298945/OjBKP9kn_400x400.png + SLACK_USERNAME: ${{ secrets.BOT_USERNAME }} + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + +on: + # Allows you to run this workflow manually from the Actions tab as an alternative. + workflow_dispatch: + workflow_call: + secrets: + SLAB_ACTION_TOKEN: + required: true + SLAB_BASE_URL: + required: true + JOB_SECRET: + required: true + SLACK_CHANNEL: + required: true + BOT_USERNAME: + required: true + SLACK_WEBHOOK: + required: true + +jobs: + setup-instance: + name: Setup instance (zk-pok-tests) + if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.label.name, 'approved') }} + runs-on: ubuntu-latest + outputs: + runner-name: ${{ steps.start-instance.outputs.label }} + steps: + - name: Start instance + id: start-instance + uses: zama-ai/slab-github-runner@1dced74825027fe3d481392163ed8fc56813fb5d + with: + mode: start + github-token: ${{ secrets.SLAB_ACTION_TOKEN }} + slab-url: ${{ secrets.SLAB_BASE_URL }} + job-secret: ${{ secrets.JOB_SECRET }} + backend: aws + profile: cpu-big + + zk-pok-tests: + name: tfhe-zk-pok tests + needs: setup-instance + concurrency: + group: ${{ github.workflow }}_${{ github.ref }} + cancel-in-progress: true + runs-on: ${{ needs.setup-instance.outputs.runner-name }} + steps: + - name: Checkout tfhe-rs + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b + + - name: Set up home + run: | + echo "HOME=/home/ubuntu" >> "${GITHUB_ENV}" + + - name: Install latest stable + uses: dtolnay/rust-toolchain@d8352f6b1d2e870bc5716e7a6d9b65c4cc244a1a + with: + toolchain: stable + + - name: Run tests + run: | + make test_zk_pok + + - name: Slack Notification + if: ${{ always() }} + continue-on-error: true + uses: rtCamp/action-slack-notify@4e5fb42d249be6a45a298f3c9543b111b02f7907 + env: + SLACK_COLOR: ${{ job.status }} + SLACK_MESSAGE: "Trivium tests finished with status: ${{ job.status }}. (${{ env.ACTION_RUN_URL }})" + + teardown-instance: + name: Teardown instance (zk-pok-tests) + if: ${{ always() && needs.setup-instance.result != 'skipped' }} + needs: [ setup-instance, zk-pok-tests ] + runs-on: ubuntu-latest + steps: + - name: Stop instance + id: stop-instance + uses: zama-ai/slab-github-runner@1dced74825027fe3d481392163ed8fc56813fb5d + with: + mode: stop + github-token: ${{ secrets.SLAB_ACTION_TOKEN }} + slab-url: ${{ secrets.SLAB_BASE_URL }} + job-secret: ${{ secrets.JOB_SECRET }} + label: ${{ needs.setup-instance.outputs.runner-name }} + + - name: Slack Notification + if: ${{ failure() }} + continue-on-error: true + uses: rtCamp/action-slack-notify@4e5fb42d249be6a45a298f3c9543b111b02f7907 + env: + SLACK_COLOR: ${{ job.status }} + SLACK_MESSAGE: "Instance teardown (zk-pok-tests) finished with status: ${{ job.status }}. (${{ env.ACTION_RUN_URL }})" diff --git a/.github/workflows/aws_trivium_tests.yml b/.github/workflows/aws_trivium_tests.yml new file mode 100644 index 0000000000..660197b3ee --- /dev/null +++ b/.github/workflows/aws_trivium_tests.yml @@ -0,0 +1,106 @@ +name: AWS Tests for Trivium app + +env: + CARGO_TERM_COLOR: always + ACTION_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + RUSTFLAGS: "-C target-cpu=native" + RUST_BACKTRACE: "full" + RUST_MIN_STACK: "8388608" + SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }} + SLACK_ICON: https://pbs.twimg.com/profile_images/1274014582265298945/OjBKP9kn_400x400.png + SLACK_USERNAME: ${{ secrets.BOT_USERNAME }} + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + +on: + # Allows you to run this workflow manually from the Actions tab as an alternative. + workflow_dispatch: + workflow_call: + secrets: + SLAB_ACTION_TOKEN: + required: true + SLAB_BASE_URL: + required: true + JOB_SECRET: + required: true + SLACK_CHANNEL: + required: true + BOT_USERNAME: + required: true + SLACK_WEBHOOK: + required: true + +jobs: + setup-instance: + name: Setup instance (trivium-tests) + if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.label.name, 'approved') }} + runs-on: ubuntu-latest + outputs: + runner-name: ${{ steps.start-instance.outputs.label }} + steps: + - name: Start instance + id: start-instance + uses: zama-ai/slab-github-runner@1dced74825027fe3d481392163ed8fc56813fb5d + with: + mode: start + github-token: ${{ secrets.SLAB_ACTION_TOKEN }} + slab-url: ${{ secrets.SLAB_BASE_URL }} + job-secret: ${{ secrets.JOB_SECRET }} + backend: aws + profile: cpu-small + + trivium-tests: + name: Trivium tests + needs: setup-instance + concurrency: + group: ${{ github.workflow }}_${{ github.ref }} + cancel-in-progress: true + runs-on: ${{ needs.setup-instance.outputs.runner-name }} + steps: + - name: Checkout tfhe-rs + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b + + - name: Set up home + run: | + echo "HOME=/home/ubuntu" >> "${GITHUB_ENV}" + + - name: Install latest stable + uses: dtolnay/rust-toolchain@d8352f6b1d2e870bc5716e7a6d9b65c4cc244a1a + with: + toolchain: stable + + - name: Run tests + run: | + make test_trivium + make test_kreyvium + + - name: Slack Notification + if: ${{ always() }} + continue-on-error: true + uses: rtCamp/action-slack-notify@4e5fb42d249be6a45a298f3c9543b111b02f7907 + env: + SLACK_COLOR: ${{ job.status }} + SLACK_MESSAGE: "Trivium tests finished with status: ${{ job.status }}. (${{ env.ACTION_RUN_URL }})" + + teardown-instance: + name: Teardown instance (trivium-tests) + if: ${{ always() && needs.setup-instance.result != 'skipped' }} + needs: [ setup-instance, trivium-tests ] + runs-on: ubuntu-latest + steps: + - name: Stop instance + id: stop-instance + uses: zama-ai/slab-github-runner@1dced74825027fe3d481392163ed8fc56813fb5d + with: + mode: stop + github-token: ${{ secrets.SLAB_ACTION_TOKEN }} + slab-url: ${{ secrets.SLAB_BASE_URL }} + job-secret: ${{ secrets.JOB_SECRET }} + label: ${{ needs.setup-instance.outputs.runner-name }} + + - name: Slack Notification + if: ${{ failure() }} + continue-on-error: true + uses: rtCamp/action-slack-notify@4e5fb42d249be6a45a298f3c9543b111b02f7907 + env: + SLACK_COLOR: ${{ job.status }} + SLACK_MESSAGE: "Instance teardown (trivium-tests) finished with status: ${{ job.status }}. (${{ env.ACTION_RUN_URL }})" diff --git a/.github/workflows/ci_dispatch.yml b/.github/workflows/ci_dispatch.yml index 79673b572e..ed8e7ec0b0 100644 --- a/.github/workflows/ci_dispatch.yml +++ b/.github/workflows/ci_dispatch.yml @@ -178,7 +178,7 @@ jobs: name: Run zk-pok tests needs: file-change if: needs.file-change.outputs.zk_pok_test == 'true' # FIXME Define dependency tree - uses: ./.github/workflows/aws_zk_pok_tests.yml + uses: ./.github/workflows/aws_tfhe_zk_pok_tests.yml secrets: SLAB_ACTION_TOKEN: ${{ secrets.SLAB_ACTION_TOKEN }} SLAB_BASE_URL: ${{ secrets.SLAB_BASE_URL }} @@ -191,7 +191,7 @@ jobs: name: Run concrete-csprng tests needs: file-change if: needs.file-change.outputs.csprng_test == 'true' # FIXME Define dependency tree - uses: ./.github/workflows/aws_csprng_tests.yml + uses: ./.github/workflows/csprng_tests.yml secrets: SLAB_ACTION_TOKEN: ${{ secrets.SLAB_ACTION_TOKEN }} SLAB_BASE_URL: ${{ secrets.SLAB_BASE_URL }} diff --git a/.github/workflows/csprng_randomness_tests.yml b/.github/workflows/csprng_tests.yml similarity index 86% rename from .github/workflows/csprng_randomness_tests.yml rename to .github/workflows/csprng_tests.yml index 802dabda2e..e571828465 100644 --- a/.github/workflows/csprng_randomness_tests.yml +++ b/.github/workflows/csprng_tests.yml @@ -1,4 +1,4 @@ -name: CSPRNG randomness testing Workflow +name: AWS concrete-csprng tests env: CARGO_TERM_COLOR: always @@ -32,7 +32,7 @@ on: jobs: setup-instance: - name: Setup instance (csprng-randomness-tests) + name: Setup instance (csprng-tests) if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.label.name, 'approved') }} runs-on: ubuntu-latest outputs: @@ -47,10 +47,10 @@ jobs: slab-url: ${{ secrets.SLAB_BASE_URL }} job-secret: ${{ secrets.JOB_SECRET }} backend: aws - profile: cpu-small + profile: cpu-big - csprng-randomness-tests: - name: CSPRNG randomness tests + csprng-tests: + name: concrete-csprng tests needs: setup-instance concurrency: group: ${{ github.workflow }}_${{ github.ref }} @@ -69,6 +69,10 @@ jobs: with: toolchain: stable + - name: Run concrete-csprng tests + run: | + make test_concrete_csprng + - name: Dieharder randomness test suite run: | make dieharder_csprng @@ -79,12 +83,12 @@ jobs: uses: rtCamp/action-slack-notify@4e5fb42d249be6a45a298f3c9543b111b02f7907 env: SLACK_COLOR: ${{ job.status }} - SLACK_MESSAGE: "concrete-csprng randomness check finished with status: ${{ job.status }}. (${{ env.ACTION_RUN_URL }})" + SLACK_MESSAGE: "concrete-csprng tests finished with status: ${{ job.status }}. (${{ env.ACTION_RUN_URL }})" teardown-instance: - name: Teardown instance (csprng-randomness-tests) + name: Teardown instance (csprng-tests) if: ${{ always() && needs.setup-instance.result != 'skipped' }} - needs: [ setup-instance, csprng-randomness-tests ] + needs: [ setup-instance, csprng-tests ] runs-on: ubuntu-latest steps: - name: Stop instance @@ -103,4 +107,4 @@ jobs: uses: rtCamp/action-slack-notify@4e5fb42d249be6a45a298f3c9543b111b02f7907 env: SLACK_COLOR: ${{ job.status }} - SLACK_MESSAGE: "Instance teardown (csprng-randomness-tests) finished with status: ${{ job.status }}. (${{ env.ACTION_RUN_URL }})" + SLACK_MESSAGE: "Instance teardown (csprng-tests) finished with status: ${{ job.status }}. (${{ env.ACTION_RUN_URL }})"