This repository has been archived by the owner on Jul 30, 2023. It is now read-only.
chore(deps): update all non-major dependencies #553
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: Continuous Delivery | |
env: | |
DEBUG: napi:* | |
APP_NAME: sodium | |
MACOSX_DEPLOYMENT_TARGET: '10.13' | |
SODIUM_DISABLE_PIE: 1 | |
on: | |
push: | |
branches: | |
- main | |
tags-ignore: | |
- '**' | |
pull_request: null | |
jobs: | |
release_please: | |
name: Release Please | |
runs-on: ubuntu-latest | |
permissions: write-all | |
if: github.repository == 'devtomio/sodium' | |
outputs: | |
release_created: ${{ steps.release.outputs.release_created }} | |
tag_name: ${{ steps.release.outputs.tag_name }} | |
steps: | |
- uses: google-github-actions/release-please-action@141edfb4d3a003bc1723056c9ab59ba000ec22c8 # tag=v3 | |
id: release | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
release-type: node | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
settings: | |
- host: macos-latest | |
target: x86_64-apple-darwin | |
architecture: x64 | |
build: | | |
yarn rs:build | |
strip -x *.node | |
- host: windows-latest | |
build: yarn rs:build | |
target: x86_64-pc-windows-msvc | |
architecture: x64 | |
- host: ubuntu-latest | |
target: x86_64-unknown-linux-gnu | |
architecture: x64 | |
docker: | | |
docker pull $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-debian | |
docker tag $DOCKER_REGISTRY_URL/napi-rs/napi-rs/nodejs-rust:lts-debian builder | |
build: | | |
docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/build -w /build builder sh -c "apt-get install -y libsodium-dev pkg-config && CC=gcc yarn rs:build --target x86_64-unknown-linux-gnu && strip *.node" | |
- host: ubuntu-latest | |
target: x86_64-unknown-linux-musl | |
architecture: x64 | |
docker: | | |
docker pull ghcr.io/brooooooklyn/canvas/musl-builder:lts | |
docker tag ghcr.io/brooooooklyn/canvas/musl-builder:lts builder | |
build: docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/build -w /build builder sh -c "apk add gcc g++ make libffi-dev openssl-dev autoconf automake libtool pkgconfig && CC=gcc yarn rs:build && strip *.node" | |
- host: macos-latest | |
target: aarch64-apple-darwin | |
build: | | |
yarn rs:build --target=aarch64-apple-darwin | |
strip -x *.node | |
- host: ubuntu-latest | |
architecture: x64 | |
target: aarch64-unknown-linux-gnu | |
setup: | | |
sudo apt-get update | |
sudo apt-get install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu -y | |
build: | | |
yarn rs:build --target=aarch64-unknown-linux-gnu | |
aarch64-linux-gnu-strip *.node | |
- host: ubuntu-latest | |
architecture: x64 | |
target: aarch64-linux-android | |
setup: | | |
sudo apt-get update | |
sudo apt-get install build-essential -y | |
build: | | |
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang" | |
export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang" | |
export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++" | |
export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}" | |
yarn rs:build --target aarch64-linux-android | |
${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-strip *.node | |
- host: ubuntu-latest | |
architecture: x64 | |
target: aarch64-unknown-linux-musl | |
downloadTarget: aarch64-unknown-linux-musl | |
docker: | | |
docker pull ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine | |
docker tag ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine builder | |
build: | | |
docker run --rm -v ~/.cargo/git:/root/.cargo/git -v ~/.cargo/registry:/root/.cargo/registry -v $(pwd):/build -w /build builder sh -c "rustup target add aarch64-unknown-linux-musl && CC=aarch64-linux-musl-gcc yarn rs:build --target=aarch64-unknown-linux-musl && /aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip *.node" | |
- host: ubuntu-18.04 | |
architecture: x64 | |
target: 'armv7-unknown-linux-gnueabihf' | |
setup: | | |
sudo apt-get update | |
sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y | |
build: | | |
CC=arm-linux-gnueabihf-gcc yarn rs:build --target armv7-unknown-linux-gnueabihf | |
arm-linux-gnueabihf-strip *.node | |
name: Stable - ${{ matrix.settings.target }} - node@16 | |
runs-on: ${{ matrix.settings.host }} | |
needs: release_please | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3 | |
with: | |
submodules: recursive | |
- name: Setup node | |
uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # tag=v3 | |
with: | |
node-version: 16 | |
check-latest: true | |
cache: yarn | |
architecture: ${{ matrix.settings.architecture }} | |
- name: Install | |
uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # tag=v1 | |
with: | |
profile: minimal | |
override: true | |
toolchain: stable | |
target: ${{ matrix.settings.target }} | |
- name: Generate Cargo.lock | |
uses: actions-rs/cargo@844f36862e911db73fe0815f00a4a2602c279505 # tag=v1 | |
with: | |
command: generate-lockfile | |
- name: Cache cargo registry | |
uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d # tag=v3 | |
with: | |
path: ~/.cargo/registry | |
key: ${{ matrix.settings.target }}-node@16-cargo-registry-trimmed-${{ hashFiles('**/Cargo.lock') }} | |
- name: Cache cargo index | |
uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d # tag=v3 | |
with: | |
path: ~/.cargo/git | |
key: ${{ matrix.settings.target }}-node@16-cargo-index-trimmed-${{ hashFiles('**/Cargo.lock') }} | |
- name: Cache NPM dependencies | |
uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d # tag=v3 | |
with: | |
path: node_modules | |
key: npm-cache-${{ matrix.settings.target }}-node@16-${{ hashFiles('yarn.lock') }} | |
- name: Pull latest image | |
run: ${{ matrix.settings.docker }} | |
env: | |
DOCKER_REGISTRY_URL: ghcr.io | |
if: ${{ matrix.settings.docker }} | |
- name: Setup toolchain | |
run: ${{ matrix.settings.setup }} | |
if: ${{ matrix.settings.setup }} | |
shell: bash | |
- name: Install dependencies | |
run: yarn install --immutable | |
- name: Build | |
run: ${{ matrix.settings.build }} | |
shell: bash | |
- name: Upload artifact | |
if: ${{ needs.release_please.outputs.release_created == 'true' }} | |
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # tag=v3 | |
with: | |
name: bindings-${{ matrix.settings.target }} | |
path: ${{ env.APP_NAME }}.*.node | |
if-no-files-found: error | |
build-freebsd: | |
runs-on: macos-10.15 | |
needs: release_please | |
name: Build FreeBSD | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3 | |
- name: Build | |
id: build | |
uses: vmactions/freebsd-vm@9991fc3550abdc19b61d50063c7eeb7713bc498f # v0.3.1 | |
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 curl node14 python2 | |
curl -qL https://www.npmjs.com/install.sh | sh | |
npm install -g yarn | |
curl https://sh.rustup.rs -sSf --output rustup.sh | |
sh rustup.sh -y --profile minimal --default-toolchain stable | |
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 --immutable | |
yarn rs:build | |
yarn ts:build | |
strip -x *.node | |
rm -rf node_modules | |
rm -rf target | |
- name: Upload artifact | |
if: ${{ needs.release_please.outputs.release_created == 'true' }} | |
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # tag=v3 | |
with: | |
name: bindings-freebsd | |
path: ${{ env.APP_NAME }}.*.node | |
if-no-files-found: error | |
publish: | |
name: Publish packages | |
if: ${{ needs.release_please.outputs.release_created == 'true' }} | |
runs-on: ubuntu-latest | |
needs: | |
- build-freebsd | |
- release_please | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3 | |
- name: Setup node | |
uses: actions/setup-node@eeb10cff27034e7acf239c5d29f62154018672fd # tag=v3 | |
with: | |
node-version: 16 | |
check-latest: true | |
cache: yarn | |
- name: Cache NPM dependencies | |
uses: actions/cache@c3f1317a9e7b1ef106c153ac8c0f00fed3ddbc0d # tag=v3 | |
with: | |
path: node_modules | |
key: npm-cache-ubuntu-latest-${{ hashFiles('yarn.lock') }} | |
restore-keys: | | |
npm-cache- | |
- name: Install dependencies | |
run: yarn install --immutable | |
- name: Download all artifacts | |
uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741 # tag=v3 | |
with: | |
path: artifacts | |
- name: Move artifacts | |
run: yarn artifacts | |
- name: List packages | |
run: ls -R ./npm | |
- name: Install missing | |
run: sudo apt-get install musl-dev && sudo ln -s /usr/lib/x86_64-linux-musl/libc.so /lib/libc.musl-x86_64.so.1 | |
- name: Build Typescript | |
run: yarn ts:build | |
shell: bash | |
- name: Publish | |
run: yarn npm publish | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |