Skip to content

Commit

Permalink
fix: build for aarch64
Browse files Browse the repository at this point in the history
  • Loading branch information
Amninder Kaur committed Feb 1, 2024
1 parent fc19bf0 commit 745f017
Show file tree
Hide file tree
Showing 7 changed files with 112 additions and 63 deletions.
119 changes: 71 additions & 48 deletions .github/workflows/npm.yml → .github/workflows/npm_publish.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
name: CI
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
# branches:
# -feature/*
# tags:
# - 'v[0-9]+.[0-9]+.[0-9]+'
env:
DEBUG: napi:*
APP_NAME: scylla_pg_js
Expand All @@ -22,28 +24,43 @@ jobs:
target: x86_64-apple-darwin
build: |
cd scylla_pg_js && npm run build -- --target x86_64-apple-darwin
- host: macos-latest
target: aarch64-apple-darwin
build: |
cd scylla_pg_js && npm run build -- --target aarch64-apple-darwin
- host: windows-latest
build: cd scylla_pg_js && npm run build -- --target x86_64-pc-windows-msvc
target: x86_64-pc-windows-msvc
- host: ubuntu-latest
target: x86_64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
build: |-
set -e &&
cd scylla_pg_js && npm run build -- --target x86_64-unknown-linux-gnu
- host: macos-latest
target: aarch64-apple-darwin
build: |
cd scylla_pg_js && npm run build -- --target aarch64-apple-darwin
- host: ubuntu-latest
target: x86_64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: |-
set -e &&
rustup target add x86_64-unknown-linux-musl &&
cd scylla_pg_js && npm run build -- --target x86_64-unknown-linux-musl
- host: ubuntu-latest
target: arm64-unknown-linux-musl
target: aarch64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: |-
set -e &&
cd scylla_pg_js &&
rustup target add aarch64-unknown-linux-musl &&
npm run build -- --target aarch64-unknown-linux-musl &&
/aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip *.node
- host: ubuntu-latest
target: aarch64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
build: |-
set -e &&
cd scylla_pg_js && npm run build -- --target arm64-unknown-linux-musl
chmod -R 555 . &&
cd scylla_pg_js && npm run build -- --target aarch64-unknown-linux-gnu &&
aarch64-unknown-linux-gnu-strip *.node
name: stable - ${{ matrix.settings.target }} - node@18
runs-on: ${{ matrix.settings.host }}
steps:
Expand All @@ -53,17 +70,15 @@ jobs:
if: ${{ !matrix.settings.docker }}
with:
node-version: 18
check-latest: true
- name: Install
uses: actions-rs/toolchain@v1
cache: npm
- name: Install toolchain
uses: dtolnay/rust-toolchain@stable
if: ${{ !matrix.settings.docker }}
with:
profile: minimal
override: true
toolchain: stable
target: ${{ matrix.settings.target }}
- name: Cache cargo
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: |
~/.cargo/registry/index/
Expand All @@ -80,9 +95,17 @@ jobs:
run: cargo build

- run: bin/clippy-pedantic.sh
- name: Build in docker
uses: addnab/docker-run-action@v3
if: ${{ matrix.settings.docker }}
with:
image: ${{ matrix.settings.docker }}
options: '--user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build'
run: ${{ matrix.settings.build }}

- name: Build
run: ${{ matrix.settings.build }}
if: ${{ !matrix.settings.docker }}
shell: bash

# - name: setup docker container env for macos
Expand Down Expand Up @@ -121,38 +144,38 @@ jobs:
name: bindings-${{ matrix.settings.target }}
path: scylla_pg_js/${{ env.APP_NAME }}.*.node
if-no-files-found: error
npm-publish:
name: npm publish
runs-on: macos-latest
environment: publish
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
DOCKER_HUB_TOKEN: ${{ secrets.DOCKER_HUB_TOKEN }}
DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
needs:
- build
if: needs.build.result == 'success'
steps:
- uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: 18
check-latest: true
- name: Install dependencies
run: cd scylla_pg_js && npm install
- name: Download all artifacts
uses: actions/download-artifact@v3
with:
path: scylla_pg_js/artifacts
- run: cd scylla_pg_js/artifacts && cp -R **/*.node .
- run: cd scylla_pg_js && npm run universal
- name: Move artifacts
run: cd scylla_pg_js && npm run artifacts
- run: ls -R ./scylla_pg_js/npm
- run: ls -R ./scylla_pg_js/artifacts

- name: Publish
run: PATH=$PATH:$(pwd) bin/npm-release.sh # only run on release created or tag
# npm-publish:
# name: npm publish
# runs-on: macos-latest
# environment: publish
# env:
# CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
# DOCKER_HUB_TOKEN: ${{ secrets.DOCKER_HUB_TOKEN }}
# DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }}
# NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
# needs:
# - build
# if: needs.build.result == 'success'
# steps:
# - uses: actions/checkout@v3
# - name: Setup node
# uses: actions/setup-node@v3
# with:
# node-version: 18
# check-latest: true
# - name: Install dependencies
# run: cd scylla_pg_js && npm install
# - name: Download all artifacts
# uses: actions/download-artifact@v3
# with:
# path: scylla_pg_js/artifacts
# - run: cd scylla_pg_js/artifacts && cp -R **/*.node .
# - run: cd scylla_pg_js && npm run universal
# - name: Move artifacts
# run: cd scylla_pg_js && npm run artifacts
# - run: ls -R ./scylla_pg_js/npm
# - run: ls -R ./scylla_pg_js/artifacts

# - name: Publish
# run: PATH=$PATH:$(pwd) bin/npm-release.sh # only run on release created or tag

4 changes: 2 additions & 2 deletions scylla_pg_client/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "scylla_pg_client",
"version": "0.1.11",
"version": "0.1.21",
"description": "Scylla task scheduler, javascript binding.for postgres",
"engines": {
"node": ">=14.16.1",
Expand All @@ -14,7 +14,7 @@
"email": "asharmaanil@gmail.com",
"license": "MIT",
"dependencies": {
"scylla_pg_js": "0.1.17"
"scylla_pg_js": "0.1.22"
},
"devDependencies": {
"@ava/typescript": "^4.1.0",
Expand Down
3 changes: 3 additions & 0 deletions scylla_pg_js/npm/linux-arm64-gnu/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# `scylla_pg_js-linux-arm64-gnu`

This is the **aarch64-unknown-linux-gnu** binary for `scylla_pg_js`
21 changes: 21 additions & 0 deletions scylla_pg_js/npm/linux-arm64-gnu/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"name": "scylla_pg_js-linux-arm64-gnu",
"version": "0.0.0",
"os": [
"linux"
],
"cpu": [
"arm64"
],
"main": "scylla_pg_js.linux-arm64-gnu.node",
"files": [
"scylla_pg_js.linux-arm64-gnu.node"
],
"license": "MIT",
"engines": {
"node": ">= 10"
},
"libc": [
"glibc"
]
}
4 changes: 2 additions & 2 deletions scylla_pg_js/npm/linux-arm64-musl/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# `scylla_pg_client-linux-arm64-musl`
# `scylla_pg_js-linux-arm64-musl`

This is the **arm64-unknown-linux-musl** binary for `scylla_pg_client`
This is the **aarch64-unknown-linux-musl** binary for `scylla_pg_js`
2 changes: 1 addition & 1 deletion scylla_pg_js/npm/linux-arm64-musl/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@
"libc": [
"musl"
]
}
}
22 changes: 12 additions & 10 deletions scylla_pg_js/package.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
{
"name": "scylla_pg_js",
"version": "0.1.13",
"version": "0.1.21",
"main": "index.js",
"types": "index.d.ts",
"napi": {
"name": "scylla_pg_js",
"triples": {
"additional": [
"aarch64-apple-darwin",
"aarch64-unknown-linux-gnu",
"aarch64-unknown-linux-musl",
"universal-apple-darwin",
"x86_64-unknown-linux-musl",
"arm64-unknown-linux-musl"
"x86_64-unknown-linux-musl"
]
}
},
Expand Down Expand Up @@ -38,12 +39,13 @@
},
"packageManager": "yarn@3.3.1",
"optionalDependencies": {
"scylla_pg_js-win32-x64-msvc": "0.1.10",
"scylla_pg_js-darwin-x64": "0.1.10",
"scylla_pg_js-linux-x64-gnu": "0.1.10",
"scylla_pg_js-linux-x64-musl": "0.1.10",
"scylla_pg_js-linux-arm64-musl": "0.1.10",
"scylla_pg_js-darwin-arm64": "0.1.10",
"scylla_pg_js-darwin-universal": "0.1.10"
"scylla_pg_js-win32-x64-msvc": "0.1.21",
"scylla_pg_js-darwin-x64": "0.1.21",
"scylla_pg_js-linux-x64-gnu": "0.1.21",
"scylla_pg_js-linux-x64-musl": "0.1.21",
"scylla_pg_js-linux-arm64-musl": "0.1.21",
"scylla_pg_js-linux-arm64-gnu": "0.1.21",
"scylla_pg_js-darwin-arm64": "0.1.21",
"scylla_pg_js-darwin-universal": "0.1.21"
}
}

0 comments on commit 745f017

Please sign in to comment.