-
Notifications
You must be signed in to change notification settings - Fork 200
175 lines (141 loc) · 4.54 KB
/
publish-es-packages.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
name: Publish Noir ES Packages
on:
workflow_dispatch:
inputs:
noir-ref:
description: The noir reference to checkout
required: false
default: 'master'
npm-tag:
description: Repository Tag to publish under
required: false
default: 'nightly'
run-name: Publish ES Packages from ${{ inputs.noir-ref }} under @${{ inputs.npm-tag }} tag.
jobs:
build-noirc_abi_wasm:
runs-on: ubuntu-latest
steps:
- name: Checkout Noir repo
uses: actions/checkout@v4
with:
ref: ${{ inputs.noir-ref }}
- name: Setup toolchain
uses: dtolnay/[email protected]
- uses: Swatinem/rust-cache@v2
with:
key: noirc-abi
save-if: false
- name: Install Yarn dependencies
uses: ./.github/actions/setup
- name: Install wasm-opt
run: ./.github/scripts/wasm-opt-install.sh
- name: Build noirc_abi
run: ./.github/scripts/noirc-abi-build.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: noirc_abi_wasm
path: |
./tooling/noirc_abi_wasm/nodejs
./tooling/noirc_abi_wasm/web
retention-days: 10
build-noir_wasm:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
ref: ${{ inputs.noir-ref }}
- name: Setup toolchain
uses: dtolnay/[email protected]
- uses: Swatinem/rust-cache@v2
with:
key: noir-wasm
save-if: false
- name: Install Yarn dependencies
uses: ./.github/actions/setup
- name: Install wasm-opt
run: ./.github/scripts/wasm-opt-install.sh
- name: Build noir_js_types
run: yarn workspace @noir-lang/types build
- name: Build noir_wasm
run: ./.github/scripts/noir-wasm-build.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: noir_wasm
path: |
./compiler/wasm/dist
./compiler/wasm/build
retention-days: 3
build-acvm_js:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
ref: ${{ inputs.noir-ref }}
- name: Setup toolchain
uses: dtolnay/[email protected]
- uses: Swatinem/rust-cache@v2
with:
key: acvm-js
save-if: false
- name: Install Yarn dependencies
uses: ./.github/actions/setup
- name: Install wasm-opt
run: ./.github/scripts/wasm-opt-install.sh
- name: Build acvm_js
run: ./.github/scripts/acvm_js-build.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: acvm-js
path: |
./acvm-repo/acvm_js/nodejs
./acvm-repo/acvm_js/web
retention-days: 3
publish-es-packages:
runs-on: ubuntu-latest
needs: [build-acvm_js, build-noirc_abi_wasm, build-noir_wasm]
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
ref: ${{ inputs.noir-ref }}
- uses: actions/download-artifact@v4
with:
name: acvm-js
path: acvm-repo/acvm_js
- uses: actions/download-artifact@v4
with:
name: noir_wasm
path: compiler/wasm
- uses: actions/download-artifact@v4
with:
name: noirc_abi_wasm
path: tooling/noirc_abi_wasm
- name: Install Yarn dependencies
run: yarn install
- name: Build ES Packages
run: yarn build:js:only
- name: Prepare nightly version
if: ${{ inputs.npm-tag != 'latest' }}
run: |
yarn nightly:version -- .${{ inputs.npm-tag }}
- name: Authenticate with npm
run: "echo npmAuthToken: ${{ secrets.NPM_TOKEN }} > ~/.yarnrc.yml"
- name: Publish ES Packages
run: yarn publish:all --access public --tag ${{ inputs.npm-tag }}
# Raise an issue if any package failed to publish
- name: Alert on failed publish
uses: JasonEtco/create-an-issue@v2
if: ${{ failure() }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TAG: ${{ inputs.npm-tag }}
WORKFLOW_NAME: ${{ github.workflow }}
WORKFLOW_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
with:
update_existing: true
filename: .github/JS_PUBLISH_FAILED.md