Nightly Vite-Hardhat drift test #4
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: Nightly Vite-Hardhat 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: | |
vite-hardhat-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" | |
vite-hardhat-test-drift: | |
needs: vite-hardhat-setup | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: vite-hardhat | |
strategy: | |
fail-fast: false | |
matrix: | |
version: ${{ fromJson(needs.vite-hardhat-setup.outputs.versions) }} | |
# if it errors, we still need to know about it! | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up yarn | |
uses: ./.github/actions/setup-yarn | |
with: | |
project: vite-hardhat | |
- name: Set up nargo | |
uses: ./.github/actions/setup-nargo | |
with: | |
version: ${{ matrix.version }} | |
- name: Get stability | |
id: get-stability | |
env: | |
VERSIONS_MAP: ${{ needs.vite-hardhat-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: Generate verifier contract | |
run: yarn prep | |
- name: Run test | |
run: yarn test | |
id: yarn_test | |
- name: Send GitHub Action trigger data to Slack workflow - Stable | |
uses: slackapi/[email protected] | |
if: ${{ failure() && steps.get-stability.outputs.is_stable == 'true' }} | |
with: | |
payload: | | |
{ | |
"text": "Oooops, seems like latest stable Noir breaks noir-starter! Projects needing updating: vite-hardhat ${{ matrix.version }}" | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
- name: Send GitHub Action trigger data to Slack workflow - Prerelease | |
uses: slackapi/[email protected] | |
if: ${{ failure() && steps.get-stability.outputs.is_stable == 'false' }} | |
with: | |
payload: | | |
{ | |
"text": "Heads up DevRel! Once the prerelease becomes stable, the following project will break: vite-hardhat ${{ matrix.version }}" | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} |