File tree Expand file tree Collapse file tree 3 files changed +71
-20
lines changed
Expand file tree Collapse file tree 3 files changed +71
-20
lines changed Original file line number Diff line number Diff line change 1+ FROM node:20-bookworm
2+
3+ # Install build dependencies
4+ RUN apt-get update && apt-get install -y \
5+ liblasso3-dev \
6+ libxml2-dev \
7+ libxmlsec1-dev \
8+ libglib2.0-dev \
9+ python3 \
10+ make \
11+ g++ \
12+ && rm -rf /var/lib/apt/lists/*
13+
14+ WORKDIR /app
15+
16+ # Copy package files
17+ COPY package*.json ./
18+
19+ # Install dependencies
20+ RUN npm ci
21+
22+ # Copy source
23+ COPY . .
24+
25+ # Build prebuilds
26+ RUN npm run prebuildify
27+
28+ # Output stage - copy prebuilds to /prebuilds
29+ RUN mkdir -p /output/prebuilds && cp -r prebuilds/* /output/prebuilds/
Original file line number Diff line number Diff line change 6262 include :
6363 - os : ubuntu-latest
6464 target : linux-x64
65- # Note: linux-arm64 requires self-hosted runners or QEMU cross-compilation
66- # - os: ubuntu-24.04-arm64
67- # target: linux-arm64
6865 - os : macos-latest
6966 target : darwin-x64
7067 - os : macos-14
@@ -105,8 +102,40 @@ jobs:
105102 name : prebuilds-${{ matrix.target }}
106103 path : prebuilds/
107104
105+ build-linux-arm64 :
106+ needs : test
107+ if : startsWith(github.ref, 'refs/tags/v')
108+ runs-on : ubuntu-latest
109+ steps :
110+ - uses : actions/checkout@v4
111+
112+ - name : Set up QEMU
113+ uses : docker/setup-qemu-action@v3
114+ with :
115+ platforms : arm64
116+
117+ - name : Build in arm64 container
118+ uses : docker/build-push-action@v5
119+ with :
120+ context : .
121+ file : .github/Dockerfile.arm64
122+ platforms : linux/arm64
123+ push : false
124+ outputs : type=local,dest=./output
125+
126+ - name : Extract prebuilds
127+ run : |
128+ mkdir -p prebuilds
129+ cp -r output/prebuilds/* prebuilds/
130+
131+ - name : Upload prebuilds
132+ uses : actions/upload-artifact@v4
133+ with :
134+ name : prebuilds-linux-arm64
135+ path : prebuilds/
136+
108137 publish :
109- needs : build
138+ needs : [ build, build-linux-arm64]
110139 runs-on : ubuntu-latest
111140 steps :
112141 - uses : actions/checkout@v4
@@ -135,6 +164,6 @@ jobs:
135164 run : npm run build:ts
136165
137166 - name : Publish to npm
138- run : npm publish
167+ run : npm publish --ignore-scripts
139168 env :
140169 NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
Original file line number Diff line number Diff line change 11{
22 "name" : " lasso.js" ,
33 "version" : " 0.1.1" ,
4- "description" : " Node.js N-API binding for Lasso SAML library" ,
4+ "description" : " SAML 2.0 Identity Provider (IdP) and Service Provider (SP) for Node.js - Native binding to Lasso library" ,
55 "main" : " dist/index.js" ,
66 "types" : " dist/index.d.ts" ,
77 "scripts" : {
4545 " saml" ,
4646 " saml2" ,
4747 " saml-2.0" ,
48- " saml2.0" ,
49- " lasso" ,
50- " sso" ,
51- " single-sign-on" ,
52- " idp" ,
5348 " identity-provider" ,
54- " sp" ,
5549 " service-provider" ,
56- " identity" ,
57- " federation" ,
50+ " idp" ,
51+ " sp" ,
52+ " sso" ,
53+ " single-sign-on" ,
5854 " authentication" ,
59- " auth" ,
6055 " slo" ,
6156 " single-logout" ,
57+ " federation" ,
6258 " xml-signature" ,
6359 " xmlsec" ,
6460 " express" ,
6561 " middleware" ,
66- " passport" ,
67- " oauth" ,
68- " security" ,
69- " n-api" ,
62+ " lasso" ,
7063 " native" ,
71- " binding "
64+ " n-api "
7265 ],
7366 "author" : " LINAGORA <https://linagora.com>" ,
7467 "license" : " GPL-2.0-or-later" ,
You can’t perform that action at this time.
0 commit comments