Nightly Vite-Hardhat drift test #28
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: 'Create env file' | |
run: | | |
touch .env | |
echo SEPOLIA_ALCHEMY_KEY="${{ secrets.SEPOLIA_ALCHEMY_KEY }}" >> .env | |
echo SEPOLIA_DEPLOYER_PRIVATE_KEY="${{ secrets.SEPOLIA_DEPLOYER_PRIVATE_KEY }}" >> .env | |
echo MUMBAI_ALCHEMY_KEY"=${{ secrets.MUMBAI_ALCHEMY_KEY }}" >> .env | |
echo MUMBAI_DEPLOYER_PRIVATE_KEY="${{ secrets.MUMBAI_DEPLOYER_PRIVATE_KEY }}" >> .env | |
- name: Generate verifier contract | |
run: | | |
nargo codegen-verifier | |
working-directory: vite-hardhat/circuits | |
- 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 }} |