-
Notifications
You must be signed in to change notification settings - Fork 145
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(ci): Refactoring CI workflows
- Loading branch information
1 parent
ee993c2
commit f876925
Showing
12 changed files
with
381 additions
and
419 deletions.
There are no files selected for viewing
16 changes: 13 additions & 3 deletions
16
.github/workflows/action-pin.yaml → .github/workflows/action_compliance.yaml
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,29 @@ | ||
name: Action Pin | ||
name: check action compliance | ||
|
||
on: | ||
pull_request: | ||
paths: | ||
- .github/workflows/** | ||
push: | ||
branches: | ||
- main | ||
- 'release/*' | ||
|
||
jobs: | ||
check-action-pin: | ||
action-pin: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 | ||
|
||
- name: Ensure SHA pinned actions | ||
uses: zgosalvez/github-actions-ensure-sha-pinned-actions@0901cf7b71c7ea6261ec69a3dc2bd3f9264f893e # v3.0.12 | ||
with: | ||
allowlist: | | ||
slsa-framework/slsa-github-generator | ||
action-lint: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 | ||
|
||
- name: actionlint | ||
uses: raven-actions/actionlint@01fce4f43a270a612932cb1c64d40505a029f821 # v2.0.0 |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
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
This file was deleted.
Oops, something went wrong.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
name: concrete-compiler benchmark linux-cpu | ||
|
||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
paths: | ||
- .github/workflows/concrete_compiler_benchmark.yml | ||
- compilers/** | ||
- backends/** | ||
- tools/** | ||
push: | ||
branches: | ||
- 'main' | ||
- 'release/*' | ||
|
||
env: | ||
DOCKER_IMAGE_TEST: ghcr.io/zama-ai/concrete-compiler | ||
ACTION_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} | ||
SLACK_CHANNEL: ${{ secrets.SLACK_CHANNEL }} | ||
SLACK_USERNAME: ${{ secrets.BOT_USERNAME }} | ||
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} | ||
|
||
jobs: | ||
setup-instance: | ||
name: Setup instance | ||
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@447a2d0fd2d1a9d647aa0d0723a6e9255372f261 | ||
with: | ||
mode: start | ||
github-token: ${{ secrets.SLAB_ACTION_TOKEN }} | ||
slab-url: ${{ secrets.SLAB_BASE_URL }} | ||
job-secret: ${{ secrets.JOB_SECRET }} | ||
backend: aws | ||
profile: cpu-test | ||
|
||
build-and-run-benchmarks: | ||
name: Build and run concrete-compiler benchmarks | ||
needs: setup-instance | ||
runs-on: ${{ needs.setup-instance.outputs.runner-name }} | ||
steps: | ||
- name: Checkout concrete | ||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | ||
with: | ||
submodules: recursive | ||
fetch-depth: 0 | ||
- name: Set up home | ||
# "Install rust" step require root user to have a HOME directory which is not set. | ||
run: | | ||
echo "HOME=/home/ubuntu" >> "${GITHUB_ENV}" | ||
- name: Setup rust toolchain for concrete-cpu | ||
uses: ./.github/workflows/setup_rust_toolchain_for_concrete_cpu | ||
- name: Build compiler benchmarks | ||
run: | | ||
set -e | ||
git config --global --add safe.directory '*' | ||
cd compilers/concrete-compiler/compiler | ||
make BINDINGS_PYTHON_ENABLED=OFF build-benchmarks | ||
- name: Slack Notification | ||
if: ${{ failure() && github.ref == 'refs/heads/main' }} | ||
continue-on-error: true | ||
uses: rtCamp/action-slack-notify@4e5fb42d249be6a45a298f3c9543b111b02f7907 | ||
env: | ||
SLACK_COLOR: ${{ job.status }} | ||
SLACK_MESSAGE: "Build compiler benchmark finished with status: ${{ job.status }}. (${{ env.ACTION_RUN_URL }})" | ||
- name: Run compiler benchmarks | ||
run: | | ||
set -e | ||
cd compilers/concrete-compiler/compiler | ||
make run-cpu-benchmarks | ||
- name: Slack Notification | ||
if: ${{ failure() && github.ref == 'refs/heads/main' }} | ||
continue-on-error: true | ||
uses: rtCamp/action-slack-notify@4e5fb42d249be6a45a298f3c9543b111b02f7907 | ||
env: | ||
SLACK_COLOR: ${{ job.status }} | ||
SLACK_MESSAGE: "Run compiler benchmark finished with status: ${{ job.status }}. (${{ env.ACTION_RUN_URL }})" | ||
- name: Upload raw results artifact | ||
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | ||
with: | ||
name: compiler-benchmarks-result | ||
path: compilers/concrete-compiler/compiler/benchmarks_results.json | ||
|
||
parse-and-send-results: | ||
name: Parse and send results | ||
needs: [setup-instance, build-and-run-benchmarks] | ||
runs-on: ${{ needs.setup-instance.outputs.runner-name }} | ||
steps: | ||
- name: Download concrete-compiler python-bindings | ||
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | ||
with: | ||
name: concrete-compiler-python-bindings | ||
path: compiler-benchmarks-result | ||
- name: Parse results | ||
shell: bash | ||
run: | | ||
COMMIT_DATE="$(git --no-pager show -s --format=%cd --date=iso8601-strict ${{ github.sha }})" | ||
COMMIT_HASH="$(git describe --tags --dirty)" | ||
python3 ./ci/benchmark_parser.py compilers/concrete-compiler/compiler/benchmarks_results.json parsed_benchmark_results.json \ | ||
--database compiler_benchmarks \ | ||
--hardware "hpc7a.96xlarge" \ | ||
--project-version ${COMMIT_HASH} \ | ||
--branch ${{ github.ref_name }} \ | ||
--commit-date ${COMMIT_DATE} \ | ||
--bench-date "$(date --iso-8601=seconds)" \ | ||
--throughput | ||
- name: Upload parsed results artifact | ||
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | ||
with: | ||
name: compiler-benchmarks-result | ||
path: parsed_benchmark_results.json | ||
- name: Checkout Slab repo | ||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | ||
with: | ||
repository: zama-ai/slab | ||
path: slab | ||
token: ${{ secrets.CONCRETE_ACTIONS_TOKEN }} | ||
- name: Send data to Slab | ||
shell: bash | ||
run: | | ||
echo "Computing HMac on downloaded artifact" | ||
SIGNATURE="$(slab/scripts/hmac_calculator.sh parsed_benchmark_results.json '${{ secrets.JOB_SECRET }}')" | ||
echo "Sending results to Slab..." | ||
curl -v -k \ | ||
-H "Content-Type: application/json" \ | ||
-H "X-Slab-Repository: ${{ github.repository }}" \ | ||
-H "X-Slab-Command: store_data" \ | ||
-H "X-Hub-Signature-256: sha256=${SIGNATURE}" \ | ||
-d @parsed_benchmark_results.json \ | ||
${{ secrets.SLAB_URL }} |
Oops, something went wrong.