From 51a317196b711ae2b6f3a7e1ded0084446fb8a41 Mon Sep 17 00:00:00 2001 From: Amin Abdulrahman Date: Wed, 23 Apr 2025 11:38:56 +0200 Subject: [PATCH 1/6] feat: switch to self-hosted runner --- .github/workflows/test_basic.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test_basic.yaml b/.github/workflows/test_basic.yaml index 62496641f..de822da37 100644 --- a/.github/workflows/test_basic.yaml +++ b/.github/workflows/test_basic.yaml @@ -7,7 +7,7 @@ on: jobs: examples_dry_run: name: Dry Run (${{ matrix.target }}) - runs-on: ubuntu-latest + runs-on: self-hosted strategy: matrix: target: @@ -26,7 +26,7 @@ jobs: run: | python3 example.py --dry-run --only-target=${{ matrix.target }} tutorial: - runs-on: ubuntu-latest + runs-on: self-hosted steps: - uses: actions/checkout@v3 - uses: ./.github/actions/setup-ubuntu @@ -34,7 +34,7 @@ jobs: run: | (cd tutorial && ./tutorial_all.sh) examples_basic: - runs-on: ubuntu-latest + runs-on: self-hosted steps: - uses: actions/checkout@v3 - uses: ./.github/actions/setup-ubuntu @@ -42,7 +42,7 @@ jobs: run: | python3 example.py --examples simple0,simple1,simple0_loop,simple1_loop examples_ntt_kyber_dilithium_helium_core: - runs-on: ubuntu-latest + runs-on: self-hosted steps: - uses: actions/checkout@v3 - uses: ./.github/actions/setup-ubuntu @@ -50,7 +50,7 @@ jobs: run: | python3 example.py --examples ntt_kyber_1_23_45_67_m55,ntt_dilithium_12_34_56_78_m55 --timeout=300 examples_ntt_kyber_dilithium_neon_core: - runs-on: ubuntu-latest + runs-on: self-hosted steps: - uses: actions/checkout@v3 - uses: ./.github/actions/setup-ubuntu @@ -58,7 +58,7 @@ jobs: run: | python3 example.py --examples ntt_kyber_123_4567_a55,ntt_dilithium_123_45678_a55 --timeout=300 sqmag: - runs-on: ubuntu-latest + runs-on: self-hosted steps: - uses: actions/checkout@v3 - uses: ./.github/actions/setup-ubuntu @@ -66,7 +66,7 @@ jobs: run: | (cd paper/scripts && NO_LOG=Y ./slothy_sqmag.sh) fft: - runs-on: ubuntu-latest + runs-on: self-hosted steps: - uses: actions/checkout@v3 - uses: ./.github/actions/setup-ubuntu From cd3e80751f43d14db8d2e952398f97a83b38907a Mon Sep 17 00:00:00 2001 From: Amin Abdulrahman Date: Wed, 23 Apr 2025 11:44:24 +0200 Subject: [PATCH 2/6] fix: switch runner setup to macos --- .github/actions/setup-macos/action.yml | 24 ++++++++++++++++++++++++ .github/workflows/test_basic.yaml | 14 +++++++------- 2 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 .github/actions/setup-macos/action.yml diff --git a/.github/actions/setup-macos/action.yml b/.github/actions/setup-macos/action.yml new file mode 100644 index 000000000..4a8b971e1 --- /dev/null +++ b/.github/actions/setup-macos/action.yml @@ -0,0 +1,24 @@ +name: Setup ubuntu +description: Setup ubuntu + +inputs: + packages: + description: Space-separated list of additional packages to install + required: false + default: 'llvm llvm-runtime' + +runs: + using: composite + steps: + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + - name: Setup Python venv + shell: bash + run: | + python3 -m venv venv + source venv/bin/activate + python3 -m pip install -r requirements.txt + deactivate + echo "$(pwd)/venv/bin/" >> "$GITHUB_PATH" diff --git a/.github/workflows/test_basic.yaml b/.github/workflows/test_basic.yaml index de822da37..98cbb0ca6 100644 --- a/.github/workflows/test_basic.yaml +++ b/.github/workflows/test_basic.yaml @@ -21,7 +21,7 @@ jobs: - slothy.targets.aarch64.aarch64_big_experimental steps: - uses: actions/checkout@v3 - - uses: ./.github/actions/setup-ubuntu + - uses: ./.github/actions/setup-macos - name: Run examples run: | python3 example.py --dry-run --only-target=${{ matrix.target }} @@ -29,7 +29,7 @@ jobs: runs-on: self-hosted steps: - uses: actions/checkout@v3 - - uses: ./.github/actions/setup-ubuntu + - uses: ./.github/actions/setup-macos - name: Run tutorial run: | (cd tutorial && ./tutorial_all.sh) @@ -37,7 +37,7 @@ jobs: runs-on: self-hosted steps: - uses: actions/checkout@v3 - - uses: ./.github/actions/setup-ubuntu + - uses: ./.github/actions/setup-macos - name: Run examples run: | python3 example.py --examples simple0,simple1,simple0_loop,simple1_loop @@ -45,7 +45,7 @@ jobs: runs-on: self-hosted steps: - uses: actions/checkout@v3 - - uses: ./.github/actions/setup-ubuntu + - uses: ./.github/actions/setup-macos - name: Run examples run: | python3 example.py --examples ntt_kyber_1_23_45_67_m55,ntt_dilithium_12_34_56_78_m55 --timeout=300 @@ -53,7 +53,7 @@ jobs: runs-on: self-hosted steps: - uses: actions/checkout@v3 - - uses: ./.github/actions/setup-ubuntu + - uses: ./.github/actions/setup-macos - name: Run examples run: | python3 example.py --examples ntt_kyber_123_4567_a55,ntt_dilithium_123_45678_a55 --timeout=300 @@ -61,7 +61,7 @@ jobs: runs-on: self-hosted steps: - uses: actions/checkout@v3 - - uses: ./.github/actions/setup-ubuntu + - uses: ./.github/actions/setup-macos - name: Run examples run: | (cd paper/scripts && NO_LOG=Y ./slothy_sqmag.sh) @@ -69,7 +69,7 @@ jobs: runs-on: self-hosted steps: - uses: actions/checkout@v3 - - uses: ./.github/actions/setup-ubuntu + - uses: ./.github/actions/setup-macos - name: Run examples run: | (cd paper/scripts && NO_LOG=Y ./slothy_fft.sh) From 8ab03b0e060cca43b128abd81eae4d58655c6521 Mon Sep 17 00:00:00 2001 From: Amin Abdulrahman Date: Wed, 23 Apr 2025 12:11:44 +0200 Subject: [PATCH 3/6] fix: add llvm install to macos setup --- .github/actions/setup-macos/action.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/actions/setup-macos/action.yml b/.github/actions/setup-macos/action.yml index 4a8b971e1..a7d6f47f0 100644 --- a/.github/actions/setup-macos/action.yml +++ b/.github/actions/setup-macos/action.yml @@ -5,7 +5,7 @@ inputs: packages: description: Space-separated list of additional packages to install required: false - default: 'llvm llvm-runtime' + default: 'llvm' runs: using: composite @@ -14,6 +14,11 @@ runs: uses: actions/setup-python@v4 with: python-version: '3.11' + - name: Install additional packages + if: ${{ inputs.packages != ''}} + shell: bash + run: | + brew install ${{ inputs.packages }} - name: Setup Python venv shell: bash run: | From 890e08b33c59b3117340e9639333f160cf6a77d3 Mon Sep 17 00:00:00 2001 From: Amin Abdulrahman Date: Wed, 23 Apr 2025 12:26:37 +0200 Subject: [PATCH 4/6] fix: dont install llvm from homebrew --- .github/actions/setup-macos/action.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/actions/setup-macos/action.yml b/.github/actions/setup-macos/action.yml index a7d6f47f0..dbeb8c67a 100644 --- a/.github/actions/setup-macos/action.yml +++ b/.github/actions/setup-macos/action.yml @@ -5,7 +5,7 @@ inputs: packages: description: Space-separated list of additional packages to install required: false - default: 'llvm' + default: 'cmake' runs: using: composite @@ -14,6 +14,10 @@ runs: uses: actions/setup-python@v4 with: python-version: '3.11' + - name: Install LLVM and Clang + uses: KyleMayes/install-llvm-action@v2 + with: + version: "18" - name: Install additional packages if: ${{ inputs.packages != ''}} shell: bash From c9481121404300d51e9ea650fd2bdc5edf69c4f3 Mon Sep 17 00:00:00 2001 From: Amin Abdulrahman Date: Fri, 23 May 2025 11:08:01 +0200 Subject: [PATCH 5/6] fix: install homebrew through action --- .github/actions/setup-macos/action.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/actions/setup-macos/action.yml b/.github/actions/setup-macos/action.yml index dbeb8c67a..c2f5535be 100644 --- a/.github/actions/setup-macos/action.yml +++ b/.github/actions/setup-macos/action.yml @@ -10,6 +10,9 @@ inputs: runs: using: composite steps: + - name: Set up Homebrew + id: set-up-homebrew + uses: Homebrew/actions/setup-homebrew@master - name: Set up Python uses: actions/setup-python@v4 with: From 86d8afaf12e1e4df0ecdba1ea4c10927ec7429e0 Mon Sep 17 00:00:00 2001 From: Amin Abdulrahman Date: Fri, 23 May 2025 11:08:07 +0200 Subject: [PATCH 6/6] fix: Specify runner target as macos arm64 --- .github/workflows/test_basic.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test_basic.yaml b/.github/workflows/test_basic.yaml index 98cbb0ca6..f50fd33ff 100644 --- a/.github/workflows/test_basic.yaml +++ b/.github/workflows/test_basic.yaml @@ -7,7 +7,7 @@ on: jobs: examples_dry_run: name: Dry Run (${{ matrix.target }}) - runs-on: self-hosted + runs-on: [self-hosted, macOS, ARM64] strategy: matrix: target: @@ -26,7 +26,7 @@ jobs: run: | python3 example.py --dry-run --only-target=${{ matrix.target }} tutorial: - runs-on: self-hosted + runs-on: [self-hosted, macOS, ARM64] steps: - uses: actions/checkout@v3 - uses: ./.github/actions/setup-macos @@ -34,7 +34,7 @@ jobs: run: | (cd tutorial && ./tutorial_all.sh) examples_basic: - runs-on: self-hosted + runs-on: [self-hosted, macOS, ARM64] steps: - uses: actions/checkout@v3 - uses: ./.github/actions/setup-macos @@ -42,7 +42,7 @@ jobs: run: | python3 example.py --examples simple0,simple1,simple0_loop,simple1_loop examples_ntt_kyber_dilithium_helium_core: - runs-on: self-hosted + runs-on: [self-hosted, macOS, ARM64] steps: - uses: actions/checkout@v3 - uses: ./.github/actions/setup-macos @@ -50,7 +50,7 @@ jobs: run: | python3 example.py --examples ntt_kyber_1_23_45_67_m55,ntt_dilithium_12_34_56_78_m55 --timeout=300 examples_ntt_kyber_dilithium_neon_core: - runs-on: self-hosted + runs-on: [self-hosted, macOS, ARM64] steps: - uses: actions/checkout@v3 - uses: ./.github/actions/setup-macos @@ -58,7 +58,7 @@ jobs: run: | python3 example.py --examples ntt_kyber_123_4567_a55,ntt_dilithium_123_45678_a55 --timeout=300 sqmag: - runs-on: self-hosted + runs-on: [self-hosted, macOS, ARM64] steps: - uses: actions/checkout@v3 - uses: ./.github/actions/setup-macos @@ -66,7 +66,7 @@ jobs: run: | (cd paper/scripts && NO_LOG=Y ./slothy_sqmag.sh) fft: - runs-on: self-hosted + runs-on: [self-hosted, macOS, ARM64] steps: - uses: actions/checkout@v3 - uses: ./.github/actions/setup-macos