Skip to content

Commit

Permalink
Add dummy release job to inspect behavior
Browse files Browse the repository at this point in the history
  • Loading branch information
ranisalt committed Dec 16, 2023
1 parent 3bfd04e commit 74c2388
Show file tree
Hide file tree
Showing 4 changed files with 211 additions and 47 deletions.
43 changes: 22 additions & 21 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,34 +16,35 @@ jobs:

name: Test for node-${{ matrix.node-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
cache: yarn
node-version: ${{ matrix.node-version }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
cache: yarn
node-version: ${{ matrix.node-version }}

- name: Run tests
if: matrix.node-version < 20
run: yarn test
- name: Install dependencies
run: yarn install --frozen-lockfile

- name: Run tests with coverage
if: matrix.node-version >= 20
run: yarn test-coverage
- name: Run tests
run: yarn test

test-alpine:
name: Test on Alpine Linux
strategy:
matrix:
node-version: [18, 20]

name: Test for node-${{ matrix.node-version }} on Alpine Linux
runs-on: ubuntu-latest

container:
image: node:18-alpine
image: node:${{ matrix.node-version }}-alpine

steps:
- name: Install build deps
Expand Down Expand Up @@ -79,7 +80,7 @@ jobs:
envs: 'YARN_GPG npm_config_debug npm_config_build_from_source'
prepare: |
pkg install -y gmake python3 yarn-node${{ matrix.node-version }}
run: |
yarn install --frozen-lockfile
run: |
yarn test
sync: sshfs
166 changes: 166 additions & 0 deletions .github/workflows/dummy-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
name: Release

on: [push]

jobs:
build:
strategy:
matrix:
os: [ubuntu-20.04, macos-11, macos-m1, windows-2019]

name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- name: Use Node.js 20
uses: actions/setup-node@v4
with:
cache: yarn
node-version: 20

- name: Install dependencies
run: yarn install --frozen-lockfile --ignore-scripts

- name: Prebuild
run: yarn build

- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
path: prebuilds/**/*.node

build-alpine:
name: Build on Alpine Linux
runs-on: ubuntu-latest

container:
image: node:20-alpine

steps:
- name: Install build deps
run: apk add make g++ python3 git

- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- name: Install dependencies
run: yarn install --frozen-lockfile --ignore-scripts

- name: Prebuild
run: yarn build

- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
path: prebuilds/**/*.node

build-arm:
strategy:
matrix:
include:
- arch: aarch64
distro: ubuntu20.04
- arch: aarch64
distro: alpine_latest

name: Build on arm64
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- name: Prebuild
uses: uraimo/run-on-arch-action@v2
with:
arch: ${{ matrix.arch }}
distro: ${{ matrix.distro }}
setup: mkdir -p "${PWD}/artifacts"
dockerRunArgs: --volume "${PWD}:/repo"
install: |
case "${{ matrix.distro }}" in
ubuntu*|jessie|stretch|buster)
apt update -yq
apt install -yq curl make g++ python
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -yq nodejs
;;
alpine*)
apk add --update make g++ python3
apk add --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/v3.17/main/ nodejs~=20 npm~=20
;;
esac
npm install --global yarn
run: |
cd /repo
yarn install --frozen-lockfile --ignore-scripts
yarn build
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
path: prebuilds/**/*.node

build-freebsd:
name: Build on FreeBSD
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- name: Package artifacts
uses: vmactions/freebsd-vm@v1
with:
envs: "npm_config_build_from_source"
prepare: |
pkg install -y gmake python3 yarn-node20
run: |
yarn install --frozen-lockfile --ignore-scripts
yarn build
sync: sshfs

- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
path: prebuilds/**/*.node

publish:
name: Publish package
runs-on: ubuntu-20.04
needs: [build, build-alpine, build-arm, build-freebsd]

container:
image: node:20-alpine

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- name: Download artifacts
id: download-artifact
uses: actions/download-artifact@v3

- name: Rename prebuild artifacts directory
run: mv artifact/ prebuilds/

- name: Display structure of downloaded files
run: ls -R

- name: Inspect package
run: |
yarn pack
tar --list --verbose --file argon2-*.tgz
42 changes: 22 additions & 20 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-20.04, macos-11, macos-m1, windows-2019]
x

name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}

Expand All @@ -20,15 +20,13 @@ x
submodules: true

- name: Use Node.js 20
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
cache: yarn
node-version: 20

- run: corepack enable yarn

- name: Install dependencies
run: yarn install --frozen-lockfile
run: yarn install --frozen-lockfile --ignore-scripts

- name: Prebuild
run: yarn build
Expand All @@ -41,6 +39,7 @@ x
build-alpine:
name: Build on Alpine Linux
runs-on: ubuntu-latest

container:
image: node:20-alpine

Expand All @@ -54,7 +53,7 @@ x
submodules: true

- name: Install dependencies
run: yarn install --frozen-lockfile
run: yarn install --frozen-lockfile --ignore-scripts

- name: Prebuild
run: yarn build
Expand All @@ -65,8 +64,6 @@ x
path: prebuilds/**/*.node

build-arm:
name: Build on arm64
runs-on: ubuntu-latest
strategy:
matrix:
include:
Expand All @@ -75,6 +72,9 @@ x
- arch: aarch64
distro: alpine_latest

name: Build on arm64
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -95,17 +95,16 @@ x
apt install -yq curl make g++ python
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -yq nodejs
npm install --global yarn
;;
alpine*)
apk add --update make g++ python3
apk add --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/v3.17/main/ nodejs~=20 npm~=20
npm install --global yarn
;;
esac
corepack enable yarn
run: |
cd /repo
yarn install --frozen-lockfile
yarn install --frozen-lockfile --ignore-scripts
yarn build
- name: Upload artifacts
Expand All @@ -129,8 +128,8 @@ x
envs: "npm_config_build_from_source"
prepare: |
pkg install -y gmake python3 yarn-node20
yarn install --frozen-lockfile --ignore-scripts
run: |
yarn install --frozen-lockfile
yarn build
sync: sshfs

Expand All @@ -144,22 +143,25 @@ x
runs-on: ubuntu-20.04
needs: [build, build-alpine, build-arm, build-freebsd]

container:
image: node:20-alpine

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: true

- name: Use Node.js 20
uses: actions/setup-node@v3
with:
cache: yarn
node-version: 20
registry-url: https://registry.npmjs.org/

- name: Display structure of downloaded files
run: ls -R

- name: Download artifacts
id: download-artifact
uses: actions/download-artifact@v3

- name: Rename prebuild artifacts directory
run: mv artifact/ prebuilds/

- name: Publish to NPM
run: yarn publish
if: ${{ !env.ACT }}
Expand Down
7 changes: 1 addition & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,8 @@
"prebuilds/**/*"
],
"binary": {
"module_name": "argon2",
"module_path": "./lib/binding/napi-v{napi_build_version}",
"remote_path": "v{version}",
"package_name": "{module_name}-v{version}-napi-v{napi_build_version}-{platform}-{arch}-{libc}.tar.gz",
"host": "https://github.com/ranisalt/node-argon2/releases/download/",
"napi_versions": [
3
8
]
},
"scripts": {
Expand Down

0 comments on commit 74c2388

Please sign in to comment.