-
Notifications
You must be signed in to change notification settings - Fork 5
134 lines (116 loc) · 4.68 KB
/
build-napi.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
---
name: Build Node.js Bindings
run-name: Build Node.js Bindings
on:
#pull_request:
push:
branches:
- "test-workflows"
#workflow_dispatch:
workflow_call:
defaults:
run:
shell: bash
working-directory: languages/node
jobs:
#generate_schemas:
# name: Generate schemas
# uses: ./.github/workflows/generate-schemas.yml
# test-rust-crate:
# uses: ./.github/workflows/rust-test.yml
build:
name: Building @infisical/sdk-napi for - ${{ matrix.settings.os }}
runs-on: ${{ matrix.settings.os || 'ubuntu-latest' }}
needs:
# - generate_schemas
#- test-rust-crate
strategy:
fail-fast: false
matrix:
settings:
- os: macos-12
target: x86_64-apple-darwin
build: |
npm run build
strip -x *.node
- os: macos-12
target: aarch64-apple-darwin
build: |
npm run build-arm64
strip -x *.node
- os: windows-2022
target: x86_64-pc-windows-msvc
build: |
npm run build
- os: windows-2022
target: i686-pc-windows-msvc
build: |
rustup target add i686-pc-windows-msvc
npm run build-win-ia32
- os: ubuntu-22.04
target: x86_64-unknown-linux-gnu
build: |
sudo apt-get update &&
sudo apt-get install -y binutils &&
set -e &&
npm run build
- os: ubuntu-22.04
target: aarch64-unknown-linux-gnu
build: |
sudo apt-get update &&
sudo apt-get install -y binutils &&
set -e &&
npm run build
- host: ubuntu-latest
target: aarch64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
build: |-
set -e &&
yarn build --target aarch64-unknown-linux-gnu &&
aarch64-unknown-linux-gnu-strip *.node &&
chmod 777 -R target
steps:
- name: Checkout repo
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Setup Node
uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v4.0.0
with:
node-version: 18
#cache: "npm"
#cache-dependency-path: languages/node/package-lock.json
- name: Install rust
uses: dtolnay/rust-toolchain@439cf607258077187679211f12aa6f19af4a0af7 # stable
with:
toolchain: stable
targets: ${{ matrix.settings.target }}
- name: Cache cargo registry
uses: Swatinem/rust-cache@3cf7f8cc28d1b4e7d01e3783be10a97d55d483c8 # v2.7.1
with:
key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.os }}
- name: Retrieve schemas
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
with:
name: schemas.ts
path: ${{ github.workspace }}/languages/node/src/infisical_client/
- name: Install dependencies
run: npm ci
- name: Build
run: ${{ matrix.settings.build }}
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: infisical.${{ matrix.settings.target }}.node
path: ${{ github.workspace }}/languages/node/infisical.*.node
if-no-files-found: error
- name: Upload binding.js
uses: actions/upload-artifact@v3
with:
name: binding.js
path: ${{ github.workspace }}/languages/node/binding.js
if-no-files-found: error
- name: Upload binding.d.ts
uses: actions/upload-artifact@v3
with:
name: binding.d.ts
path: ${{ github.workspace }}/languages/node/binding.d.ts
if-no-files-found: error