fix: remove dir test and use npm instead of yarn #12
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Secrets SDK CI | |
env: | |
DEBUG: napi:* | |
APP_NAME: keyring | |
MACOSX_DEPLOYMENT_TARGET: '10.13' | |
'on': | |
push: | |
paths: | |
- 'packages/secrets/**' | |
- '.github/workflows/secrets-sdk.yml' | |
pull_request: | |
paths: | |
- 'packages/secrets/**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
defaults: | |
run: | |
working-directory: packages/secrets | |
if: (github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository) && !contains(github.event.head_commit.message, '[ci skip]') | |
strategy: | |
fail-fast: false | |
matrix: | |
settings: | |
- host: macos-latest | |
target: x86_64-apple-darwin | |
build: | | |
npm run build | |
- host: windows-latest | |
build: npm run build | |
target: x86_64-pc-windows-msvc | |
- host: windows-latest | |
build: | | |
npm run build -- --target i686-pc-windows-msvc | |
npm run test | |
target: i686-pc-windows-msvc | |
- host: ubuntu-latest | |
target: x86_64-unknown-linux-gnu | |
use-cross: true | |
build: | | |
set -e | |
CARGO=cross npm run build -- --target x86_64-unknown-linux-gnu | |
- host: ubuntu-latest | |
target: i686-unknown-linux-gnu | |
use-cross: true | |
build: | | |
set -e | |
source scripts/configure-cross.sh i686-unknown-linux-gnu | |
CARGO=cross npm run build -- --target i686-unknown-linux-gnu | |
- host: ubuntu-latest | |
target: armv7-unknown-linux-gnueabihf | |
use-cross: true | |
build: | | |
set -e | |
source scripts/configure-cross.sh armv7-unknown-linux-gnueabihf | |
CARGO=cross npm run build -- --target armv7-unknown-linux-gnueabihf | |
- host: ubuntu-latest | |
target: x86_64-unknown-linux-musl | |
use-cross: true | |
build: | | |
set -e | |
CARGO=cross npm run build -- --target x86_64-unknown-linux-musl | |
- host: macos-latest | |
target: aarch64-apple-darwin | |
build: | | |
sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*; | |
export CC=$(xcrun -f clang); | |
export CXX=$(xcrun -f clang++); | |
SYSROOT=$(xcrun --sdk macosx --show-sdk-path); | |
export CFLAGS="-isysroot $SYSROOT -isystem $SYSROOT"; | |
npm run build --target aarch64-apple-darwin | |
- host: ubuntu-latest | |
target: aarch64-unknown-linux-gnu | |
use-cross: true | |
build: | | |
set -e | |
source scripts/configure-cross.sh aarch64-unknown-linux-gnu | |
CARGO=cross npm run build -- --target aarch64-unknown-linux-gnu | |
- host: ubuntu-latest | |
target: aarch64-unknown-linux-musl | |
use-cross: true | |
build: | | |
set -e | |
source scripts/configure-cross.sh aarch64-unknown-linux-musl | |
CARGO=cross npm run build -- --target aarch64-unknown-linux-musl | |
- host: windows-latest | |
target: aarch64-pc-windows-msvc | |
build: npm run build -- --target aarch64-pc-windows-msvc | |
name: stable - ${{ matrix.settings.target }} - node@16 | |
runs-on: ${{ matrix.settings.host }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
if: ${{ !matrix.settings.docker }} | |
with: | |
node-version: 18 | |
check-latest: true | |
cache: npm | |
- name: Install | |
uses: dtolnay/rust-toolchain@stable | |
if: ${{ !matrix.settings.docker }} | |
with: | |
toolchain: stable | |
target: ${{ matrix.settings.target }} | |
- name: Cache cargo | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
.cargo-cache | |
target/ | |
key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }} | |
- run: cargo install cross | |
if: ${{ matrix.settings.use-cross }} | |
- name: Setup toolchain | |
run: ${{ matrix.settings.setup }} | |
if: ${{ matrix.settings.setup }} | |
shell: bash | |
- name: Install dependencies | |
run: npm install | |
working-directory: . | |
- name: Setup node x86 | |
uses: actions/setup-node@v3 | |
if: matrix.settings.target == 'i686-pc-windows-msvc' | |
with: | |
node-version: 18 | |
check-latest: true | |
cache: npm | |
architecture: x86 | |
- 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: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: bindings-${{ matrix.settings.target }} | |
path: packages/secrets/src/keyring/${{ env.APP_NAME }}.*.node | |
if-no-files-found: error | |
# build-freebsd: | |
# runs-on: macos-12 | |
# name: Build FreeBSD | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - name: Build | |
# id: build | |
# uses: vmactions/freebsd-vm@v0 | |
# env: | |
# DEBUG: napi:* | |
# RUSTUP_HOME: /usr/local/rustup | |
# CARGO_HOME: /usr/local/cargo | |
# RUSTUP_IO_THREADS: 1 | |
# with: | |
# envs: DEBUG RUSTUP_HOME CARGO_HOME RUSTUP_IO_THREADS | |
# usesh: true | |
# mem: 3000 | |
# prepare: | | |
# pkg install -y -f curl node libnghttp2 npm yarn | |
# curl https://sh.rustup.rs -sSf --output rustup.sh | |
# sh rustup.sh -y --profile minimal --default-toolchain beta | |
# export PATH="/usr/local/cargo/bin:$PATH" | |
# echo "~~~~ rustc --version ~~~~" | |
# rustc --version | |
# echo "~~~~ node -v ~~~~" | |
# node -v | |
# echo "~~~~ yarn --version ~~~~" | |
# yarn --version | |
# run: | | |
# export PATH="/usr/local/cargo/bin:$PATH" | |
# pwd | |
# ls -lah | |
# whoami | |
# env | |
# freebsd-version | |
# yarn install | |
# yarn build | |
# strip -x *.node | |
# yarn test | |
# rm -rf node_modules | |
# rm -rf target | |
# rm -rf .yarn/cache | |
# - name: Upload artifact | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: bindings-freebsd | |
# path: ${{ env.APP_NAME }}.*.node | |
# if-no-files-found: error | |
test-macOS-windows-binding: | |
defaults: | |
run: | |
working-directory: packages/secrets | |
name: Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }} | |
needs: | |
- build | |
strategy: | |
fail-fast: false | |
matrix: | |
settings: | |
- host: windows-latest | |
target: x86_64-pc-windows-msvc | |
- host: macos-latest | |
target: x86_64-apple-darwin | |
node: | |
- '14' | |
- '16' | |
- '18' | |
runs-on: ${{ matrix.settings.host }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
check-latest: true | |
cache: npm | |
- name: Install dependencies | |
run: npm install | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: bindings-${{ matrix.settings.target }} | |
path: . | |
- name: Test bindings | |
run: npm run test | |
test-linux-x64-gnu-binding: | |
defaults: | |
run: | |
working-directory: packages/secrets | |
name: Test bindings on Linux-x64-gnu - node@${{ matrix.node }} | |
needs: | |
- build | |
strategy: | |
fail-fast: false | |
matrix: | |
node: | |
- '14' | |
- '16' | |
- '18' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
check-latest: true | |
cache: npm | |
- name: Install dependencies | |
run: npm install | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: bindings-x86_64-unknown-linux-gnu | |
path: . | |
- name: Setup and run tests | |
uses: addnab/docker-run-action@v3 | |
with: | |
image: node:${{ matrix.node }}-slim | |
options: '-v ${{ github.workspace }}:/build -w /build --cap-add=IPC_LOCK' | |
run: | | |
set -e | |
apt update -y && apt install -y gnome-keyring | |
dbus-run-session -- bash linux-test.sh | |
test-linux-x64-musl-binding: | |
defaults: | |
run: | |
working-directory: packages/secrets | |
name: Test bindings on x86_64-unknown-linux-musl - node@${{ matrix.node }} | |
needs: | |
- build | |
strategy: | |
fail-fast: false | |
matrix: | |
node: | |
- '14' | |
- '16' | |
- '18' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
check-latest: true | |
cache: npm | |
- name: Install dependencies | |
run: npm install | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: bindings-x86_64-unknown-linux-musl | |
path: . | |
- name: Setup and run tests | |
uses: addnab/docker-run-action@v3 | |
with: | |
image: node:${{ matrix.node }}-alpine | |
options: '-v ${{ github.workspace }}:/build -w /build --cap-add=IPC_LOCK' | |
run: | | |
set -e | |
apk add dbus gnome-keyring libsecret | |
dbus-run-session -- sh linux-test.sh | |
test-linux-aarch64-gnu-binding: | |
defaults: | |
run: | |
working-directory: packages/secrets | |
name: Test bindings on aarch64-unknown-linux-gnu - node@${{ matrix.node }} | |
needs: | |
- build | |
strategy: | |
fail-fast: false | |
matrix: | |
node: | |
- '14' | |
- '16' | |
- '18' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: bindings-aarch64-unknown-linux-gnu | |
path: . | |
- name: Install dependencies | |
run: npm install | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
with: | |
platforms: arm64 | |
- run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes | |
- name: Setup and run tests | |
uses: addnab/docker-run-action@v3 | |
with: | |
image: ghcr.io/napi-rs/napi-rs/nodejs:aarch64-${{ matrix.node }} | |
options: '-v ${{ github.workspace }}:/build -w /build --cap-add=IPC_LOCK' | |
run: | | |
set -e | |
apt update -y && apt install -y gnome-keyring | |
dbus-run-session -- bash linux-test.sh | |
test-linux-aarch64-musl-binding: | |
defaults: | |
run: | |
working-directory: packages/secrets | |
name: Test bindings on aarch64-unknown-linux-musl - node@${{ matrix.node }} | |
needs: | |
- build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: bindings-aarch64-unknown-linux-musl | |
path: . | |
- name: Install dependencies | |
run: npm install | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
with: | |
platforms: arm64 | |
- run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes | |
- name: Setup and run tests | |
uses: addnab/docker-run-action@v3 | |
with: | |
image: multiarch/alpine:aarch64-latest-stable | |
options: '-v ${{ github.workspace }}:/build -w /build --cap-add=IPC_LOCK' | |
run: | | |
set -e | |
apk add dbus nodejs npm gnome-keyring libsecret | |
dbus-run-session -- sh linux-test.sh | |
test-linux-arm-gnueabihf-binding: | |
defaults: | |
run: | |
working-directory: packages/secrets | |
name: Test bindings on armv7-unknown-linux-gnueabihf - node@${{ matrix.node }} | |
needs: | |
- build | |
strategy: | |
fail-fast: false | |
matrix: | |
node: | |
- '14' | |
- '16' | |
- '18' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: bindings-armv7-unknown-linux-gnueabihf | |
path: . | |
- name: Install dependencies | |
run: npm install | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
with: | |
platforms: arm | |
- run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes | |
- name: Setup and run tests | |
uses: addnab/docker-run-action@v3 | |
with: | |
image: ghcr.io/napi-rs/napi-rs/nodejs:armhf-${{ matrix.node }} | |
options: '-v ${{ github.workspace }}:/build -w /build --cap-add=IPC_LOCK' | |
run: | | |
set -e | |
apt update -y && apt install -y gnome-keyring | |
dbus-run-session -- bash linux-test.sh | |
publish: | |
defaults: | |
run: | |
working-directory: packages/secrets | |
name: Publish | |
runs-on: ubuntu-latest | |
needs: | |
# - build-freebsd | |
- test-macOS-windows-binding | |
- test-linux-x64-gnu-binding | |
- test-linux-x64-musl-binding | |
- test-linux-aarch64-gnu-binding | |
- test-linux-aarch64-musl-binding | |
- test-linux-arm-gnueabihf-binding | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
check-latest: true | |
cache: npm | |
- name: Install dependencies | |
run: npm install | |
- name: Package | |
run: npm run prepublishOnly && npm pack | |
env: | |
GH_TOKEN: ${{ github.token }} | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: npm-package | |
path: '*.tgz' | |
if-no-files-found: error | |
# - name: Publish | |
# run: | | |
# if git log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+$"; | |
# then | |
# echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc | |
# npm publish --access public | |
# elif git log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+"; | |
# then | |
# echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc | |
# npm publish --tag next --access public | |
# else | |
# echo "Not a release, skipping publish" | |
# fi | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |