Skip to content

Commit

Permalink
fix: fixing versioning workflow (#3296)
Browse files Browse the repository at this point in the history
  • Loading branch information
signorecello authored Oct 31, 2023
1 parent f9933fa commit 3d5e43a
Show file tree
Hide file tree
Showing 20 changed files with 120 additions and 116 deletions.
109 changes: 27 additions & 82 deletions .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,6 @@ name: Build docs

on:
pull_request:
paths:
- 'docs/**'
types:
- opened
- synchronize
- labeled

jobs:
add_label:
Expand Down Expand Up @@ -53,7 +47,7 @@ jobs:
})
}
deploy_docs:
build_and_deploy:
runs-on: ubuntu-latest
permissions:
pull-requests: write
Expand All @@ -62,81 +56,32 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Netlify deploy
run: |
BRANCH_NAME=$(echo "${{ github.head_ref || github.ref }}" | sed -e "s#refs/[^/]*/##")
curl -X POST -d {} "https://api.netlify.com/build_hooks/${{ secrets.NETLIFY_BUILD_HOOK }}?trigger_branch=$BRANCH_NAME"
- name: Get deploy preview
id: get_deploy_preview
run: |
BRANCH_NAME=$(echo "${{ github.head_ref || github.ref }}" | sed -e "s#refs/[^/]*/##")
curl -X GET "https://api.netlify.com/api/v1/sites/${{ secrets.NETLIFY_SITE_ID }}/deploys?branch=$BRANCH_NAME" > deploy.json
echo "::set-output name=deploy_url::$(cat deploy.json | jq -r '.[0].deploy_ssl_url')"
- name: Add PR Comment
uses: mshick/add-pr-comment@v2
with:
message: |
Hey @${{ github.event.pull_request.user.login }}! 🙌
I'm the deployment bot for Noir Docs, and I've got some updates for you:
## Deployment Status
Your latest changes are being deployed for preview! 🚀
Click the badge to see logs 🧐
[![Netlify Status](https://api.netlify.com/api/v1/badges/${{ secrets.NETLIFY_SITE_ID }}/deploy-status?branch=${{ github.head_ref || github.ref }})](https://app.netlify.com/sites/noir-docs-v2/deploys)
If you have any questions about this process, refer to our contribution guide or feel free to ask around.
- name: Check on deploy status
uses: ./.github/actions/docs/build-status
id: check_deploy_status
with:
branch-name: ${{ github.head_ref || github.ref }}
site-id: ${{ secrets.NETLIFY_SITE_ID }}
continue-on-error: true


- name: Debugging - print deploy_status
run: echo "${{ steps.check_deploy_status.outputs.deploy_status }}"


- name: Change PR Comment for Successful Deployment
if: steps.check_deploy_status.outputs.deploy_status == 'success'
uses: mshick/add-pr-comment@v2

- name: Setup Node.js
uses: actions/setup-node@v2
with:
message-success: |
![It's Alive!](https://i.imgflip.com/82hw5n.jpg)
I'm a bot, beep boop 🤖
## Deployment Status: Success!
[![Netlify Status](https://api.netlify.com/api/v1/badges/${{ secrets.NETLIFY_SITE_ID }}/deploy-status?branch=${{ github.head_ref || github.ref }})](https://app.netlify.com/sites/noir-docs-v2/deploys)
## Preview
🌐 [View Deployment Preview](${{ steps.get_deploy_preview.outputs.deploy_url }})
node-version: '18'

- name: Change PR Comment for Failed Deployment
if: steps.check_deploy_status.outputs.deploy_status == 'failure'
uses: mshick/add-pr-comment@v2
- name: Install dependencies
run: yarn

- name: Build docs
run: yarn workspace docs build

- name: Remove pre-releases
working-directory: docs
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: yarn setStable

- name: Deploy to Netlify
uses: nwtgck/actions-netlify@v2.1
with:
message: |
![docs CI troll](https://i.imgflip.com/82ht8f.jpg)
I'm a bot, beep boop 🤖
## Deployment Status: Failed ❌
Deployment didn't succeed. Please check logs below and resolve the issue 🧐
[![Netlify Status](https://api.netlify.com/api/v1/badges/${{ secrets.NETLIFY_SITE_ID }}/deploy-status?branch=${{ github.head_ref || github.ref }})](https://app.netlify.com/sites/noir-docs-v2/deploys)
- name: Fail the workflow if deployment failed
if: steps.check_deploy_status.outputs.deploy_status == 'failure'
run: exit 1
publish-dir: './docs/build'
github-token: ${{ secrets.GITHUB_TOKEN }}
enable-github-deployment: false
deploy-message: "Deploy from GitHub Actions for PR ${{ github.event.number }}"
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
timeout-minutes: 1
12 changes: 10 additions & 2 deletions .github/workflows/publish-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,21 @@ jobs:
uses: actions/setup-node@v2
with:
node-version: '18'

- name: Install Yarn
run: npm install -g yarn

- name: Install Yarn dependencies
uses: ./.github/actions/setup
run: yarn

- name: Cut a new version
working-directory: ./docs
run: yarn docusaurus docs:version ${{ inputs.tag }}

- name: Remove pre-releases
id: get_version
run: |
cd docs && yarn setStable
- name: Build docs
run: yarn workspace docs build
Expand All @@ -39,7 +47,7 @@ jobs:
with:
publish-dir: './docs/build'
production-branch: master
production-deploy: false # TODO change to true
production-deploy: true
github-token: ${{ secrets.GITHUB_TOKEN }}
enable-github-deployment: false
deploy-message: "Deploy from GitHub Actions for tag ${{ inputs.tag }}"
Expand Down
18 changes: 17 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,20 @@ jobs:
workflow: publish-es-packages.yml
ref: master
token: ${{ secrets.NOIR_REPO_TOKEN }}
inputs: '{ "noir-ref": "${{ needs.release-please.outputs.tag-name }}", "npm-tag": "latest" }'
inputs: '{ "noir-ref": "${{ needs.release-please.outputs.tag-name }}", "npm-tag": "latest" }'


publish-docs:
name: Publish docs
needs: [release-please]
if: ${{ needs.release-please.outputs.tag-name }}
runs-on: ubuntu-latest
steps:
- name: Dispatch to publish workflow
uses: benc-uk/workflow-dispatch@v1
with:
workflow: publish-docs.yml
repo: noir-lang/noir
ref: master
token: ${{ secrets.GITHUB_TOKEN }}
inputs: '{ "tag": "${{ needs.release-please.outputs.tag-name }}"}'
2 changes: 1 addition & 1 deletion docs/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ npm-debug.log*
yarn-debug.log*
yarn-error.log*

package-lock.json
package-lock.json
6 changes: 3 additions & 3 deletions docs/docs/nargo/04_language_server.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ Currently, Noir provides a Language Client for Visual Studio Code via the [vscod
When your language server is running correctly and the VSCode plugin is installed, you should see handy codelens buttons for compilation, measuring circuit size, execution, and tests:

![Compile and Execute](./../../static/img/codelens_compile_execute.png)
![Run test](../../static/img/codelens_run_test.png)
![Compile and Execute](@site/static/img/codelens_compile_execute.png)
![Run test](@site/static/img/codelens_run_test.png)

You should also see your tests in the `testing` panel:

![Testing panel](./../../static/img/codelens_testing_panel.png)
![Testing panel](@site/static/img/codelens_testing_panel.png)

### Configuration

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/noir_js/getting_started/01_tiny_noir_app.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ You're probably eager to see stuff happening, so go and run your app now!

From your terminal, run `npm start` (or `yarn start`). If it doesn't open a browser for you, just visit `localhost:5173`. On a modern laptop, proof will generate in less than 100ms, and you'll see this:

![Getting Started 0](./../../../static/img/noir_getting_started_1.png)
![Getting Started 0](@site/static/img/noir_getting_started_1.png)

If you're human, you shouldn't be able to understand anything on the "proof" box. That's OK. We like you, human.

Expand Down
10 changes: 3 additions & 7 deletions docs/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,6 @@ const config = {
label: 'dev',
path: 'dev',
},
'0.7.1': {
label: '0.7.1 / 0.8.0',
},
},
editUrl: ({ versionDocsDirPath, docPath }) =>
`https://github.com/noir-lang/noir/edit/master/docs/${versionDocsDirPath}/${docPath}`,
Expand All @@ -62,7 +59,7 @@ const config = {

themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
{
// Replace with your project's social card
navbar: {
logo: {
Expand All @@ -87,8 +84,7 @@ const config = {
metadata: [
{
name: 'Noir',
content:
'noir, programming, language, documentation, zk, zero-knowledge, l2, crypto, layer2, ethereum',
content: 'noir, programming, language, documentation, zk, zero-knowledge, l2, crypto, layer2, ethereum',
},
],
footer: {
Expand Down Expand Up @@ -149,7 +145,7 @@ const config = {

indexName: 'noir-lang',
},
}),
},
};

module.exports = config;
3 changes: 2 additions & 1 deletion docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"private": true,
"scripts": {
"start": "docusaurus start",
"build": "docusaurus build"
"build": "docusaurus build",
"setStable": "node ./scripts/setStable.js"
},
"dependencies": {
"@docusaurus/core": "^2.4.0",
Expand Down
41 changes: 41 additions & 0 deletions docs/scripts/setStable.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/* eslint-disable */
const fs = require('fs');
const path = require('path');
const axios = require('axios');
const { release } = require('os');

const IGNORE_VERSIONS = ['0.16.0'];
const NUMBER_OF_VERSIONS_TO_SHOW = 2;

async function main() {
const versionsFile = path.join(__dirname, '../versions.json');

const axiosOpts = {
params: { per_page: 100 },
};

console.log(process.env.GITHUB_TOKEN);
// cool if you have a GITHUB_TOKEN because of rate limiting
// but fine if you don't
if (process.env.GITHUB_TOKEN) axiosOpts.headers = { Authorization: `token ${process.env.GITHUB_TOKEN}` };

const { data } = await axios.get('https://api.github.com/repos/noir-lang/noir/releases', axiosOpts);

const all = data.map((release) => release.tag_name);
console.log('All versions: ', all);
const aztecs = data.filter((release) => release.tag_name.includes('aztec')).map((release) => release.tag_name);
console.log('Removing aztecs: ', aztecs);
const prereleases = data.filter((release) => !release.prerelease).map((release) => release.tag_name);
console.log('Removing prereleases: ', prereleases);

const stables = data
.filter((release) => !release.prerelease && !release.tag_name.includes('aztec'))
.filter((release) => !IGNORE_VERSIONS.includes(release.tag_name.replace('v', '')))
.map((release) => release.tag_name.replace('v', ''))
.slice(0, NUMBER_OF_VERSIONS_TO_SHOW);

console.log('Stables: ', stables);
fs.writeFileSync(versionsFile, JSON.stringify(stables, null, 2));
}

main();
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ Currently, Noir provides a Language Client for Visual Studio Code via the [vscod

When you language server is running correctly and the VSCode plugin is installed, you should see handy codelens buttons for compilation, execution, and tests:

![Compile and Execute](./../../../static/img/codelens_compile_execute.png)
![Run test](../../../static/img/codelens_run_test.png)
![Compile and Execute](@site/static/img/codelens_compile_execute.png)
![Run test](@site/static/img/codelens_run_test.png)

### Configuration

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Explore the Slice data type in Noir. Understand its methods, see re
keywords: [noir, slice type, methods, examples, subarrays]
---

import Experimental from '../../../../src/components/Notes/_experimental.mdx';
import Experimental from '@site/src/components/Notes/_experimental.mdx';

<Experimental />

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Delve into the Vector data type in Noir. Learn about its methods, p
keywords: [noir, vector type, methods, examples, dynamic arrays]
---

import Experimental from '../../../../src/components/Notes/_experimental.mdx';
import Experimental from '@site/src/components/Notes/_experimental.mdx';

<Experimental />

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ Currently, Noir provides a Language Client for Visual Studio Code via the [vscod
When your language server is running correctly and the VSCode plugin is installed, you should see handy codelens buttons for compilation, measuring circuit size, execution, and tests:

![Compile and Execute](./../../../static/img/codelens_compile_execute.png)
![Run test](../../../static/img/codelens_run_test.png)
![Compile and Execute](@site/static/img/codelens_compile_execute.png)
![Run test](@site/static/img/codelens_run_test.png)

You should also see your tests in the `testing` panel:

![Testing panel](./../../../static/img/codelens_testing_panel.png)
![Testing panel](@site/static/img/codelens_testing_panel.png)

### Configuration

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ You're probably eager to see stuff happening, so go and run your app now!

From your terminal, run `npm start` (or `yarn start`). If it doesn't open a browser for you, just visit `localhost:5173`. On a modern laptop, proof will generate in less than 100ms, and you'll see this:

![Getting Started 0](./../../../../static/img/noir_getting_started_1.png)
![Getting Started 0](@site/static/img/noir_getting_started_1.png)

If you're human, you shouldn't be able to understand anything on the "proof" box. That's OK. We like you, human.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ keywords:
[cryptographic primitives, Noir project, sha256, blake2s, pedersen, mimc_bn254, mimc, hash]
---

import BlackBoxInfo from '../../../../src/components/Notes/_blackbox.mdx';
import BlackBoxInfo from '@site/src/components/Notes/_blackbox.mdx';

## sha256

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: See how you can perform scalar multiplications over a fixed base in
keywords: [cryptographic primitives, Noir project, scalar multiplication]
---

import BlackBoxInfo from '../../../../src/components/Notes/_blackbox.mdx';
import BlackBoxInfo from '@site/src/components/Notes/_blackbox.mdx';

## scalar_mul::fixed_base_embedded_curve

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Learn how you can verify Schnorr signatures using Noir
keywords: [cryptographic primitives, Noir project, schnorr, signatures]
---

import BlackBoxInfo from '../../../../src/components/Notes/_blackbox.mdx';
import BlackBoxInfo from '@site/src/components/Notes/_blackbox.mdx';

## schnorr::verify_signature

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Learn about the cryptographic primitives regarding ECDSA over the s
keywords: [cryptographic primitives, Noir project, ecdsa, secp256k1, secp256r1, signatures]
---

import BlackBoxInfo from '../../../../src/components/Notes/_blackbox.mdx';
import BlackBoxInfo from '@site/src/components/Notes/_blackbox.mdx';

Noir supports ECDSA signatures verification over the secp256k1 and secp256r1 curves.

Expand Down
Loading

0 comments on commit 3d5e43a

Please sign in to comment.