-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* init * improve README * reshuffle ok/err handling * ends -> pty_pair * use ? in some places * use ? in more places * even more ? * check result from termios * a comment * alpha version * release alpha publicly * github ci * ci with bun * try install bun in docker * more ci bun * try bun docker container * adjust cwd test * skip cwd test, fails on ci for whatever reason * try to fix test issue on linux ci * skip flaky env test * 1.0.0-alpha.1 * testing publishing * 1.0.0-alpha.2 * 1.0.0 * more ci debugging * force publish flow for v1.0.0 * undo force publish from previous commit * some info on publishing * new test & prettier * attempt at cleaning up CI a bit * close the fd after child.wait() * move around usafe {} * check for error when getting fcntl flags * more readable size using an object with named fields --------- Co-authored-by: Replit user <>
- Loading branch information
1 parent
1e85cec
commit 3eeaee4
Showing
20 changed files
with
1,313 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,201 @@ | ||
name: CI | ||
env: | ||
DEBUG: napi:* | ||
APP_NAME: ruspty | ||
MACOSX_DEPLOYMENT_TARGET: '10.13' | ||
|
||
permissions: | ||
contents: write | ||
id-token: write | ||
'on': | ||
push: | ||
branches: | ||
- main | ||
tags-ignore: | ||
- '**' | ||
paths-ignore: | ||
- '**/*.md' | ||
- LICENSE | ||
- '**/*.gitignore' | ||
- .editorconfig | ||
- docs/** | ||
pull_request: null | ||
|
||
jobs: | ||
build: | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
settings: | ||
- host: macos-latest | ||
target: x86_64-apple-darwin | ||
build: | | ||
bun run build | ||
strip -x *.node | ||
- host: ubuntu-latest | ||
target: x86_64-unknown-linux-gnu | ||
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian | ||
build: |- | ||
set -e && | ||
npm install -g bun && | ||
bun run build --target x86_64-unknown-linux-gnu && | ||
strip *.node | ||
name: Build on ${{ matrix.settings.target }} | ||
runs-on: ${{ matrix.settings.host }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Setup Bun | ||
uses: oven-sh/setup-bun@v1 | ||
- name: Setup node | ||
uses: actions/setup-node@v4 | ||
if: ${{ !matrix.settings.docker }} | ||
with: | ||
node-version: 20 | ||
- name: Install | ||
uses: dtolnay/rust-toolchain@stable | ||
if: ${{ !matrix.settings.docker }} | ||
with: | ||
toolchain: stable | ||
targets: ${{ 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 }} | ||
- uses: goto-bus-stop/setup-zig@v2 | ||
if: ${{ matrix.settings.target == 'armv7-unknown-linux-gnueabihf' }} | ||
with: | ||
version: 0.11.0 | ||
- name: Setup toolchain | ||
run: ${{ matrix.settings.setup }} | ||
if: ${{ matrix.settings.setup }} | ||
shell: bash | ||
- name: Install dependencies | ||
run: bun install | ||
- 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: ${{ env.APP_NAME }}.*.node | ||
if-no-files-found: error | ||
|
||
test-macos-binding: | ||
name: Test on ${{ matrix.settings.target }} | ||
needs: | ||
- build | ||
strategy: | ||
matrix: | ||
settings: | ||
- host: macos-latest | ||
target: x86_64-apple-darwin | ||
runs-on: ${{ matrix.settings.host }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Setup Bun | ||
uses: oven-sh/setup-bun@v1 | ||
- name: Setup node | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: 20 | ||
- name: Install dependencies | ||
run: bun install | ||
- name: Download artifacts | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: bindings-${{ matrix.settings.target }} | ||
path: . | ||
- name: List packages | ||
run: ls -R . | ||
shell: bash | ||
- name: Test bindings | ||
run: bun test | ||
|
||
test-linux-binding: | ||
name: Test on ${{ matrix.settings.target }} | ||
needs: | ||
- build | ||
strategy: | ||
matrix: | ||
settings: | ||
- host: ubuntu-latest | ||
target: x86_64-unknown-linux-gnu | ||
runs-on: ${{ matrix.settings.host }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Setup Bun | ||
uses: oven-sh/setup-bun@v1 | ||
- name: Setup node | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: 20 | ||
- name: Install dependencies | ||
run: bun install | ||
- name: Download artifacts | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: bindings-${{ matrix.settings.target }} | ||
path: . | ||
- name: List packages | ||
run: ls -R . | ||
shell: bash | ||
- name: Test bindings | ||
run: docker run --rm -v $(pwd):/build -w /build oven/bun:1 bun test | ||
|
||
publish: | ||
name: Publish | ||
runs-on: ubuntu-latest | ||
needs: | ||
- test-macos-binding | ||
- test-linux-binding | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Setup Bun | ||
uses: oven-sh/setup-bun@v1 | ||
- name: Setup node | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: 20 | ||
- name: Install dependencies | ||
run: bun install | ||
- name: Download all artifacts | ||
uses: actions/download-artifact@v3 | ||
with: | ||
path: artifacts | ||
- name: Move artifacts | ||
run: bun run artifacts | ||
- name: List packages | ||
run: ls -R ./npm | ||
shell: bash | ||
- name: Publish | ||
run: | | ||
npm config set provenance true | ||
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 }} |
Oops, something went wrong.