-
Notifications
You must be signed in to change notification settings - Fork 6
50 lines (50 loc) · 1.58 KB
/
build-and-release.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
name: Build and release
on:
release:
types: [created]
jobs:
run-unit-tests:
uses: ./.github/workflows/unit-test.yml
run-end-to-end-tests:
uses: ./.github/workflows/end-to-end-tests.yml
run-benchmarks:
uses: ./.github/workflows/benchmark.yml
build:
needs:
- run-unit-tests
- run-end-to-end-tests
- run-benchmarks
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: "18.x"
registry-url: "https://registry.npmjs.org"
scope: "@aikidosec"
- name: Install dependencies
run: make install
- name: Get the version
id: get_version
run: echo "tag=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
- name: Set the version
run: cd library && npm --no-git-tag-version version ${{ steps.get_version.outputs.tag }}
- name: Build the library
run: make build
- name: Linting
run: make lint
- name: Publish to NPM
run: |
if [ "${{ github.event.release.prerelease }}" = "true" ]; then
echo "Publishing beta version ${{ steps.get_version.outputs.tag }} to NPM"
cd build && npm publish --provenance --access public --tag beta
else
echo "Publishing version ${{ steps.get_version.outputs.tag }} to NPM"
cd build && npm publish --provenance --access public
fi
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}