commit
305d42d524
5 changed files with 71 additions and 3 deletions
66
.github/workflows/android.yml
vendored
Normal file
66
.github/workflows/android.yml
vendored
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
name: macOS-Android
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
|
||||||
|
env:
|
||||||
|
DEBUG: 'napi:*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-android-aarch64:
|
||||||
|
name: Build - Android - aarch64
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setup node
|
||||||
|
uses: actions/setup-node@v1
|
||||||
|
with:
|
||||||
|
node-version: 14
|
||||||
|
|
||||||
|
- name: List NDK Home
|
||||||
|
run: ls -R "${ANDROID_NDK_HOME}"
|
||||||
|
|
||||||
|
- name: Install
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: stable
|
||||||
|
profile: minimal
|
||||||
|
override: true
|
||||||
|
|
||||||
|
- name: Install aarch64 toolchain
|
||||||
|
run: rustup target add aarch64-linux-android
|
||||||
|
|
||||||
|
- name: Generate Cargo.lock
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: generate-lockfile
|
||||||
|
|
||||||
|
- name: Cache cargo registry
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: ~/.cargo/registry
|
||||||
|
key: stable-macos-android-node@14-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
|
||||||
|
- name: Cache cargo index
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: ~/.cargo/git
|
||||||
|
key: stable-macos-android-node@14-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
|
||||||
|
- name: Cache NPM dependencies
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: node_modules
|
||||||
|
key: npm-cache-macos-android-node@14-${{ hashFiles('yarn.lock') }}
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: yarn install --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000
|
||||||
|
|
||||||
|
- name: 'Build TypeScript'
|
||||||
|
run: yarn build
|
||||||
|
|
||||||
|
- name: Cross build native tests
|
||||||
|
run: |
|
||||||
|
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android24-clang"
|
||||||
|
yarn build:test:android
|
|
@ -18,6 +18,7 @@ A minimal library for building compiled `NodeJS` add-ons in `Rust`.
|
||||||
![macOS/Windows/Linux x64](https://github.com/napi-rs/napi-rs/workflows/macOS/Windows/Linux%20x64/badge.svg)
|
![macOS/Windows/Linux x64](https://github.com/napi-rs/napi-rs/workflows/macOS/Windows/Linux%20x64/badge.svg)
|
||||||
![Linux-aarch64](https://github.com/napi-rs/napi-rs/workflows/Linux-aarch64/badge.svg)
|
![Linux-aarch64](https://github.com/napi-rs/napi-rs/workflows/Linux-aarch64/badge.svg)
|
||||||
![Linux-armv7](https://github.com/napi-rs/napi-rs/workflows/Linux-armv7/badge.svg)
|
![Linux-armv7](https://github.com/napi-rs/napi-rs/workflows/Linux-armv7/badge.svg)
|
||||||
|
![macOS-Android](https://github.com/napi-rs/napi-rs/workflows/macOS-Android/badge.svg)
|
||||||
![Windows i686](https://github.com/napi-rs/napi-rs/workflows/Windows%20i686/badge.svg)
|
![Windows i686](https://github.com/napi-rs/napi-rs/workflows/Windows%20i686/badge.svg)
|
||||||
[![FreeBSD](https://api.cirrus-ci.com/github/napi-rs/napi-rs.svg)](https://cirrus-ci.com/github/napi-rs/napi-rs?branch=main)
|
[![FreeBSD](https://api.cirrus-ci.com/github/napi-rs/napi-rs.svg)](https://cirrus-ci.com/github/napi-rs/napi-rs?branch=main)
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@napi-rs/cli",
|
"name": "@napi-rs/cli",
|
||||||
"version": "1.0.0-alpha.9",
|
"version": "1.0.0-alpha.10",
|
||||||
"description": "Cli tools for napi-rs",
|
"description": "Cli tools for napi-rs",
|
||||||
"keywords": ["cli", "rust", "napi", "n-api", "neon"],
|
"keywords": ["cli", "rust", "napi", "n-api", "neon"],
|
||||||
"author": "LongYinan <lynweklm@gmail.com>",
|
"author": "LongYinan <lynweklm@gmail.com>",
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import { execSync } from 'child_process'
|
import { execSync } from 'child_process'
|
||||||
import os from 'os'
|
|
||||||
import { join, parse, sep } from 'path'
|
import { join, parse, sep } from 'path'
|
||||||
|
|
||||||
import chalk from 'chalk'
|
import chalk from 'chalk'
|
||||||
|
@ -104,7 +103,7 @@ export class BuildCommand extends Command {
|
||||||
|
|
||||||
debug(`Dylib name: ${chalk.greenBright(dylibName)}`)
|
debug(`Dylib name: ${chalk.greenBright(dylibName)}`)
|
||||||
|
|
||||||
const platform = os.platform()
|
const platform = triple.platform
|
||||||
let libExt
|
let libExt
|
||||||
|
|
||||||
debug(`Platform: ${chalk.greenBright(platform)}`)
|
debug(`Platform: ${chalk.greenBright(platform)}`)
|
||||||
|
@ -121,6 +120,7 @@ export class BuildCommand extends Command {
|
||||||
case 'linux':
|
case 'linux':
|
||||||
case 'freebsd':
|
case 'freebsd':
|
||||||
case 'openbsd':
|
case 'openbsd':
|
||||||
|
case 'android':
|
||||||
case 'sunos':
|
case 'sunos':
|
||||||
dylibName = `lib${dylibName}`
|
dylibName = `lib${dylibName}`
|
||||||
libExt = '.so'
|
libExt = '.so'
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
"build:bench": "yarn --cwd ./bench build",
|
"build:bench": "yarn --cwd ./bench build",
|
||||||
"build:test": "yarn --cwd ./test_module build",
|
"build:test": "yarn --cwd ./test_module build",
|
||||||
"build:test:aarch64": "yarn --cwd ./test_module build-aarch64",
|
"build:test:aarch64": "yarn --cwd ./test_module build-aarch64",
|
||||||
|
"build:test:android": "yarn --cwd ./test_module build --target aarch64-linux-android",
|
||||||
"build:test:armv7": "yarn --cwd ./test_module build-armv7",
|
"build:test:armv7": "yarn --cwd ./test_module build-armv7",
|
||||||
"format": "run-p format:md format:json format:yaml format:source format:rs",
|
"format": "run-p format:md format:json format:yaml format:source format:rs",
|
||||||
"format:md": "prettier --parser markdown --write './**/*.md'",
|
"format:md": "prettier --parser markdown --write './**/*.md'",
|
||||||
|
|
Loading…
Reference in a new issue