name: AWS Tests on CPU 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: pull_request: types: [ labeled ] jobs: setup-ec2: name: Setup EC2 instance (cpu-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 }} instance-id: ${{ steps.start-instance.outputs.ec2-instance-id }} aws-region: ${{ steps.start-instance.outputs.aws-region }} steps: - name: Start instance id: start-instance uses: zama-ai/slab-github-runner@8562abbdc96b3619bd5debe1fb934db298f9a044 with: mode: start github-token: ${{ secrets.SLAB_ACTION_TOKEN }} slab-url: ${{ secrets.SLAB_BASE_URL }} job-secret: ${{ secrets.JOB_SECRET }} profile: cpu-big cpu-tests: name: CPU tests needs: setup-ec2 concurrency: group: ${{ github.workflow }}_${{ github.ref }} cancel-in-progress: true runs-on: ${{ needs.setup-ec2.outputs.runner-name }} steps: - name: Checkout tfhe-rs uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 - name: Set up home run: | echo "HOME=/home/ubuntu" >> "${GITHUB_ENV}" - name: Install latest stable uses: dtolnay/rust-toolchain@dc6353516c68da0f06325f42ad880f76a5e77ec9 with: toolchain: stable - name: Run concrete-csprng tests run: | make test_concrete_csprng - name: Run tfhe-zk-pok tests run: | make test_zk_pok - name: Run core tests run: | AVX512_SUPPORT=ON make test_core_crypto - name: Run boolean tests run: | make test_boolean - name: Run C API tests run: | make test_c_api - name: Run user docs tests run: | make test_user_doc - name: Gen Keys if required run: | make gen_key_cache - name: Run shortint tests run: | BIG_TESTS_INSTANCE=TRUE make test_shortint_ci - name: Run high-level API tests run: | BIG_TESTS_INSTANCE=TRUE make test_high_level_api - name: Run example tests run: | make test_examples make dark_market - name: Run apps 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: "CPU tests finished with status: ${{ job.status }}. (${{ env.ACTION_RUN_URL }})" teardown-ec2: name: Teardown EC2 instance (cpu-tests) if: ${{ always() && needs.setup-ec2.result != 'skipped' }} needs: [ setup-ec2, cpu-tests ] runs-on: ubuntu-latest steps: - name: Stop instance id: stop-instance uses: zama-ai/slab-github-runner@8562abbdc96b3619bd5debe1fb934db298f9a044 with: mode: stop github-token: ${{ secrets.SLAB_ACTION_TOKEN }} slab-url: ${{ secrets.SLAB_BASE_URL }} job-secret: ${{ secrets.JOB_SECRET }} region: ${{ needs.setup-ec2.outputs.aws-region }} label: ${{ needs.setup-ec2.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: "EC2 teardown (cpu-tests) finished with status: ${{ job.status }}. (${{ env.ACTION_RUN_URL }})"