1+ name : ci
2+
3+ on :
4+ push :
5+ pull_request :
6+ release :
7+ types : [published]
8+
9+ env :
10+ LOCAL-NOTARY : true
11+ LOCAL-WS : false
12+ HEADLESS : true
13+ PUPPETEER_SKIP_DOWNLOAD : true
14+
15+ jobs :
16+ build-and-test :
17+ name : Build and test
18+ runs-on : ubuntu-latest
19+ env :
20+ RELEASE_MODE : ' dry-run' # dry-run by default, will be set to 'publish' for release builds
21+ services :
22+ notary-server :
23+ image : ghcr.io/tlsnotary/tlsn/notary-server:v0.1.0-alpha.9
24+ env :
25+ NOTARY_SERVER__TLS__ENABLED : false
26+ ports :
27+ - 7047:7047
28+ steps :
29+ - name : Checkout
30+ uses : actions/checkout@v4
31+
32+ - name : Checkout tlsn
33+ uses : actions/checkout@v4
34+ with :
35+ repository : tlsnotary/tlsn
36+ path : tlsn-wasm/tlsn
37+
38+ - name : Setup Node.js
39+ uses : actions/setup-node@v4
40+ with :
41+ node-version : 18
42+ cache : ' npm'
43+
44+ - name : Install stable nightly toolchain
45+ uses : dtolnay/rust-toolchain@stable
46+ with :
47+ targets : wasm32-unknown-unknown
48+ components : rust-src
49+ toolchain : nightly
50+
51+ - name : Use caching
52+ 53+ with :
54+ workspaces : tlsn-wasm/tlsn -> target
55+ cache-on-failure : true
56+
57+ - name : Install wasm-pack
58+ run : curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
59+
60+ - name : Install dependencies
61+ run : npm ci
62+
63+ - name : Build
64+ run : npm run build
65+
66+ - name : Lint
67+ run : npm run lint
68+
69+ - name : Install Chrome
70+ uses : browser-actions/setup-chrome@v1
71+ id : setup-chrome
72+ with :
73+ chrome-version : 121.0.6167.85
74+
75+ - name : Set CHROME_PATH environment variable
76+ run : echo "CHROME_PATH=${{ steps.setup-chrome.outputs['chrome-path'] }}" >> $GITHUB_ENV
77+
78+ - name : Test
79+ run : npm run test
80+
81+ - name : Determine release type (dry-run or publish)
82+ run : |
83+ if [[ $GITHUB_EVENT_NAME == "release" ]]; then
84+ echo "RELEASE_MODE=publish" >> $GITHUB_ENV
85+ else
86+ echo "RELEASE_MODE=dry-run" >> $GITHUB_ENV
87+ fi
88+
89+ - name : Dry-run release (non-release builds)
90+ if : env.RELEASE_MODE == 'dry-run'
91+ run : npm publish --dry-run
92+
93+ - name : Publish to npm (GitHub Release)
94+ if : env.RELEASE_MODE == 'publish'
95+ env :
96+ NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
97+ run : npm publish
0 commit comments