-
Notifications
You must be signed in to change notification settings - Fork 52
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
shamelessly pushing to master a workflow_dispatch CI
- Loading branch information
1 parent
e5b966a
commit 8b53691
Showing
1 changed file
with
104 additions
and
0 deletions.
There are no files selected for viewing
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,104 @@ | ||
name: Nightly With-Foundry drift test | ||
|
||
on: | ||
# Giving ourselves a way to trigger this manually | ||
workflow_dispatch: | ||
schedule: | ||
# Run a nightly release at 2 AM UTC | ||
- cron: '0 2 * * *' | ||
|
||
jobs: | ||
with-foundry-setup: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
versions: ${{ steps.set-matrix.outputs.versions }} | ||
versions_map: ${{ steps.set-matrix.outputs.versions_map }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Get versions to test for drift | ||
id: versions_step | ||
run: | | ||
output=$(node ./.github/scripts/latest.js) | ||
echo "Output from Node.js script: $output" | ||
echo "::set-output name=versionsMap::$output" | ||
- name: Set Up Matrix | ||
id: set-matrix | ||
run: | | ||
VERSIONS_MAP='${{ steps.versions_step.outputs.versionsMap }}' | ||
echo "Versions out of script: $VERSIONS_MAP" | ||
VERSIONS=$(echo "$VERSIONS_MAP" | jq -c '[.[]]') | ||
echo "::set-output name=versions::$VERSIONS" | ||
echo "::set-output name=versions_map::$VERSIONS_MAP" | ||
with-foundry-test-drift: | ||
needs: with-foundry-setup | ||
runs-on: ubuntu-latest | ||
defaults: | ||
run: | ||
working-directory: with-foundry | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
version: ${{ fromJson(needs.with-foundry-setup.outputs.versions) }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Set up test environment | ||
uses: ./.github/actions/setup | ||
with: | ||
version: ${{ matrix.version }} | ||
|
||
- name: Get stability | ||
id: get-stability | ||
env: | ||
VERSIONS_MAP: ${{ needs.with-foundry-setup.outputs.versions_map }} | ||
run: | | ||
VERSION="${{ matrix.version }}" | ||
echo "Version Number: $VERSION" | ||
STABLE_VERSION=$(echo "$VERSIONS_MAP" | jq -r --arg VERSION "$VERSION" '.stable') | ||
if [ "$STABLE_VERSION" == "$VERSION" ]; then | ||
IS_STABLE="true" | ||
else | ||
IS_STABLE="false" | ||
fi | ||
echo "Is stable: $IS_STABLE" | ||
echo "::set-output name=is_stable::$IS_STABLE" | ||
- name: Install test version | ||
run: | | ||
yarn add \ | ||
@noir-lang/noir_js@${{ matrix.version }} \ | ||
@noir-lang/backend_barretenberg@${{ matrix.version }} \ | ||
@noir-lang/noir_wasm@${{ matrix.version }} \ | ||
@noir-lang/types@${{ matrix.version }} | ||
- name: 'Create env file' | ||
run: | | ||
touch .env | ||
echo LOCALHOST_PRIVATE_KEY="${{ secrets.LOCALHOST_PRIVATE_KEY }}" >> .env | ||
echo ANVIL_RPC="${{ secrets.ANVIL_RPC }}" >> .env | ||
- name: Generate proof | ||
run: | | ||
nargo prove | ||
working-directory: with-foundry/circuits | ||
|
||
- name: Test with Foundry | ||
run: | | ||
forge test --optimize --optimizer-runs 5000 --evm-version london | ||
- name: Send GitHub Action trigger data to Slack workflow | ||
id: slack | ||
uses: slackapi/[email protected] | ||
if: ${{ failure() && steps.get-stability.outputs.is_stable == 'false' }} | ||
with: | ||
payload: | | ||
{ | ||
"text": "Once the prerelease becomes stable, projects need updating: with-foundry ${{ matrix.version }}" | ||
} | ||
env: | ||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} |