Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Try adding GitHub actions on PRs #10

Merged
merged 1 commit into from
Sep 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Wasp-HLS PR check

on:
push:
branches: [stable, dev, legacy-v3]
pull_request:
types: [opened, synchronize, reopened]

jobs:
format_check:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- uses: actions-rs/toolchain@v1
with:
toolchain: stable

- run: npm install
- run: rustup component add rustfmt
- run: npm run fmt:check
- run: npm run fmt:check

typechecking_and_linting:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- uses: actions-rs/toolchain@v1
with:
toolchain: stable

- run: npm install
- run: rustup target add wasm32-unknown-unknown
- run: rustup component add clippy
- run: cargo install [email protected]
- run: npm run build:all
- run: npm run check
- run: npm run clippy

release_build:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [20.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- uses: actions-rs/toolchain@v1
with:
toolchain: stable

- run: npm install
- run: rustup target add wasm32-unknown-unknown
- run: rustup component add clippy
- run: cargo install [email protected]
- run: npm run build:release
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@
/wasm.d.ts
/worker.js
/worker.d.ts

/tmp
21 changes: 11 additions & 10 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ crate-type = ["cdylib"]
path = "src/rs-core/lib.rs"

[dependencies]
wasm-bindgen = "0.2.84"
wasm-bindgen = "0.2.93"
thiserror = "1.0.40"
4 changes: 4 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,11 @@
"doc": "rm -rf doc/generated && docgen.ico doc build/doc",
"fmt": "npm run fmtr && npm run fmtt",
"fmtr": "cargo fmt",
"fmtr:check": "cargo fmt --check",
"fmtt": "prettier --write . --loglevel warn",
"fmtt:check": "prettier . --check",
"fmt:check": "npm run fmtr:check && npm run fmtt:check",
"install:binaryen": "./scripts/install_binaryen.sh",
"lint": "npm run lint:main && npm run lint:worker && npm run lint:transmux && npm run lint:common && npm run lint:demo",
"lint:common": "cd src/ts-common && eslint .",
"lint:demo": "cd demo && eslint src/**/*",
Expand Down
133 changes: 133 additions & 0 deletions scripts/install_binaryen.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
#!/bin/sh

# TODO Documentation

# Log a line to stdout, prefixing it with the name of this script
log() {
printf 'wasp-hls > install_binaryen: %s\n' "$1"
}

# Log a line to sterr, prefixing it with the name of this script
err() {
log "ERROR: $1" >&2
echo ""
echo "Please install a rust toolchain (with the \"wasm32-unknown-unknown\" target) and binaryen manually" >&2
exit 1
}

# Checks that the command in argument exists, exits after printing the issue to
# stderr if that's not the case
requires_cmd() {
if ! command -v "$1" >/dev/null 2>&1; then
err "Need '$1' (command not found)"
fi
}

# Run a command that should never fail. If the command fails execution
# will immediately terminate with an error showing the failing
# command.
ensure() {
if ! "$@"; then
err "Command failed: $*"
fi
}

log "This script will install binaryen locally in the following directory: $(pwd)/tmp"

requires_cmd curl
requires_cmd tar

ensure mkdir -p tmp
rm -rf tmp/binaryen
rm -rf tmp/binaryen.tar.gz

ostype="$(uname -s)"
cpuarch="$(uname -m)"

if [ "$ostype" = Linux ]; then
if [ "$(uname -o)" = Android ]; then
err "Unhandled OS type (Android), please install binaryen manually"
fi
fi

if [ "$ostype" = Darwin ] && [ "$cpuarch" = i386 ]; then
# Darwin `uname -m` lies
if sysctl hw.optional.x86_64 | grep -q ': 1'; then
cpuarch=x86_64
fi
fi

case "$ostype" in
Linux) ;;
Darwin) ;;
MINGW* | MSYS* | CYGWIN* | Windows_NT)
ostype=Windows
;;
*)
err "Unhandled OS type ($ostype), please install binaryen manually"
;;
esac

case "$cpuarch" in
aarch64 | arm64)
cpuarch=aarch64
;;
x86_64 | x86-64 | x64 | amd64)
cpuarch=x86_64
;;
*)
err "Unhandled CPU type ($cpuarch), please install binaryen manually"
;;
esac

# TODO automatically download last binaryen?
# We might need to detect which build is available. Targeting version 116 is
# good enough for now
if [ "${ostype}" = Darwin ]; then
if [ "${cpuarch}" = aarch64 ]; then
log "Architecture detected -> MacOS ARM"
binaryen_url=https://github.com/WebAssembly/binaryen/releases/download/version_116/binaryen-version_116-arm64-macos.tar.gz
else
log "Architecture detected -> MacOS x86_64"
binaryen_url=https://github.com/WebAssembly/binaryen/releases/download/version_116/binaryen-version_116-x86_64-macos.tar.gz
fi
elif [ "${ostype}" = Linux ]; then
if [ "${cpuarch}" != x86_64 ]; then
err "For Linux, only x86_64 is supported by our auto-install script. Please install binaryen manually."
fi
log "Architecture detected -> Linux x86_64"
binaryen_url=https://github.com/WebAssembly/binaryen/releases/download/version_116/binaryen-version_116-x86_64-linux.tar.gz
elif [ "${ostype}" = Windows ]; then
if [ "${cpuarch}" != x86_64 ]; then
err "For Windows, only x86_64 is supported by our auto-install script. Please install binaryen manually."
fi
log "Architecture detected -> Windows x86_64"
binaryen_url=https://github.com/WebAssembly/binaryen/releases/download/version_116/binaryen-version_116-x86_64-windows.tar.gz
fi

log "Fetching binaryen 116..."
curl -L $binaryen_url >tmp/binaryen.tar.gz
if ! [ $? -eq 0 ]; then
err "Failed to fetch binaryen"
fi

cd tmp
ensure tar xzf binaryen.tar.gz

ensure mv binaryen-version_116 binaryen

# TODO I don't know my windows, does that still work as an executable or is it just dumb?
if [ "${ostype}" = Windows ]; then
ensure cp binaryen/bin/wasm-opt.exe binaryen/bin/wasm-opt
fi

rm binaryen.tar.gz
cd ..

if ! [ -f tmp/binaryen/bin/wasm-opt ]; then
err "Error after installing binaryen: wasm-opt not available in ./tmp/binaryen/bin/wasm-opt"
fi

log "Binaryen has been installed in $pwd/tmp/binaryen"
log "You may now run binaryen-linked scripts by first adding \"$pwd/tmp/binaryen\" to PATH:"
log "PATH=\$PATH:~/tmp/binaryen/bin npm run <MY SCRIPT>"
1 change: 1 addition & 0 deletions scripts/update_gh-pages_demo
Original file line number Diff line number Diff line change
Expand Up @@ -97,3 +97,4 @@ else
fi

git checkout main

Loading