Tests on M1 CPU #50
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: Tests on M1 CPU | |
on: | |
workflow_dispatch: | |
pull_request: | |
types: [labeled] | |
# Have a nightly build for M1 tests | |
schedule: | |
# * is a special character in YAML so you have to quote this string | |
# At 22:00 every day | |
# Timezone is UTC, so Paris time is +2 during the summer and +1 during winter | |
- cron: "0 22 * * *" | |
env: | |
CARGO_TERM_COLOR: always | |
RUSTFLAGS: "-C target-cpu=native" | |
ACTION_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
FAST_TESTS: "TRUE" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref }} | |
cancel-in-progress: true | |
jobs: | |
cargo-builds: | |
if: ${{ (github.event_name == 'schedule' && github.repository == 'zama-ai/tfhe-rs') || github.event_name == 'workflow_dispatch' || contains(github.event.label.name, 'm1_test') }} | |
runs-on: ["self-hosted", "m1mac"] | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
- name: Install latest stable | |
uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af | |
with: | |
toolchain: stable | |
default: true | |
- name: Run pcc checks | |
run: | | |
make pcc | |
- name: Build concrete-csprng | |
run: | | |
make build_concrete_csprng | |
- name: Build Release core | |
run: | | |
make build_core | |
- name: Build Release boolean | |
run: | | |
make build_boolean | |
- name: Build Release shortint | |
run: | | |
make build_shortint | |
- name: Build Release integer | |
run: | | |
make build_integer | |
- name: Build Release tfhe full | |
run: | | |
make build_tfhe_full | |
- name: Build Release c_api | |
run: | | |
make build_c_api | |
- name: Run concrete-csprng tests | |
run: | | |
make test_concrete_csprng | |
- name: Run core tests | |
run: | | |
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: | | |
CARGO_PROFILE=release_lto_off make test_user_doc | |
# JS tests are more easily launched in docker, we won't test that on M1 as docker is pretty | |
# slow on Apple machines due to the virtualization layer. | |
- name: Gen Keys if required | |
run: | | |
make gen_key_cache | |
- name: Run shortint tests | |
run: | | |
make test_shortint_ci | |
- name: Run integer tests | |
run: | | |
make test_integer_ci | |
- name: Gen Keys if required | |
run: | | |
make GEN_KEY_CACHE_MULTI_BIT_ONLY=TRUE gen_key_cache | |
- name: Run shortint multi bit tests | |
run: | | |
make test_shortint_multi_bit_ci | |
- name: Run integer multi bit tests | |
run: | | |
make test_integer_multi_bit_ci | |
remove_label: | |
name: Remove m1_test label | |
runs-on: ubuntu-latest | |
needs: | |
- cargo-builds | |
if: ${{ always() }} | |
steps: | |
- uses: actions-ecosystem/action-remove-labels@2ce5d41b4b6aa8503e285553f75ed56e0a40bae0 | |
if: ${{ github.event_name == 'pull_request' }} | |
with: | |
labels: m1_test | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Slack Notification | |
if: ${{ needs.cargo-builds.result != 'skipped' }} | |
continue-on-error: true | |
uses: rtCamp/action-slack-notify@b24d75fe0e728a4bf9fc42ee217caa686d141ee8 | |
env: | |
SLACK_COLOR: ${{ needs.cargo-builds.result }} | |
SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }} | |
SLACK_ICON: https://pbs.twimg.com/profile_images/1274014582265298945/OjBKP9kn_400x400.png | |
SLACK_MESSAGE: "M1 tests finished with status: ${{ needs.cargo-builds.result }}. (${{ env.ACTION_RUN_URL }})" | |
SLACK_USERNAME: ${{ secrets.BOT_USERNAME }} | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} |