Skip to content

Merge pull request #1158 from artichoke/dependabot/bundler/bundler-de… #2573

Merge pull request #1158 from artichoke/dependabot/bundler/bundler-de…

Merge pull request #1158 from artichoke/dependabot/bundler/bundler-de… #2573

Workflow file for this run

---
name: CI
"on":
push:
branches:
- trunk
pull_request:
branches:
- trunk
schedule:
- cron: "0 0 * * TUE"
jobs:
build-rust:
name: Build Rust
runs-on: ubuntu-latest
env:
RUSTFLAGS: -D warnings
RUST_BACKTRACE: 1
CARGO_NET_GIT_FETCH_WITH_CLI: true
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
steps:
- name: Checkout repository
uses: actions/[email protected]
- name: Set toolchain versions
run: |
echo "emscripten=$(cat emscripten-toolchain)" >> $GITHUB_OUTPUT
id: toolchain_versions
- name: Install Rust toolchain
uses: artichoke/setup-rust/[email protected]
with:
toolchain: "1.72.1"
target: "wasm32-unknown-emscripten"
- name: Compile
run: cargo build --workspace --verbose
- name: Compile tests
run: cargo test --workspace --no-run
- name: Test
run: cargo test --workspace
build-webapp:
name: Build Webapp
runs-on: ubuntu-latest
env:
RUSTFLAGS: -D warnings
RUST_BACKTRACE: 1
CARGO_NET_GIT_FETCH_WITH_CLI: true
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
steps:
- name: Checkout repository
uses: actions/[email protected]
- name: Set toolchain versions
run: |
echo "emscripten=$(cat emscripten-toolchain)" >> $GITHUB_OUTPUT
id: toolchain_versions
- name: Install Node.js toolchain
uses: actions/[email protected]
with:
node-version: "lts/*"
# Must install deps before setting up emscripten toolchain since emsdk
# includes its own older node which does not support lockfileversion 3
# in package-lock.json.
- name: Install Node.js dependencies
run: npm ci
- name: Install Rust toolchain
uses: artichoke/setup-rust/[email protected]
with:
toolchain: "1.72.1"
target: "wasm32-unknown-emscripten"
- name: Install Ruby toolchain
uses: ruby/setup-ruby@a6e6f86333f0a2523ece813039b8b4be04560854 # v1.190.0
with:
ruby-version: ".ruby-version"
bundler-cache: true
- name: Install Emscripten toolchain
uses: mymindstorm/setup-emsdk@6ab9eb1bda2574c4ddb79809fc9247783eaf9021 # v14
with:
version: ${{ steps.toolchain_versions.outputs.emscripten }}
no-cache: true
- name: Verify emcc version
run: emcc -v
- name: Compile Wasm
run: ruby scripts/build-wasm.rb --release --verbose
- name: Build Webapp
run: npm run build
rust:
name: Lint and format Rust
runs-on: ubuntu-latest
env:
RUSTFLAGS: -D warnings
RUST_BACKTRACE: 1
CARGO_NET_GIT_FETCH_WITH_CLI: true
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
steps:
- name: Checkout repository
uses: actions/[email protected]
- name: Set toolchain versions
run: |
echo "emscripten=$(cat emscripten-toolchain)" >> $GITHUB_OUTPUT
id: toolchain_versions
- name: Install Rust toolchain
uses: artichoke/setup-rust/[email protected]
with:
toolchain: "1.72.1"
- name: Install emscripten target
run: rustup target add wasm32-unknown-emscripten
- name: Install Emscripten toolchain
uses: mymindstorm/setup-emsdk@6ab9eb1bda2574c4ddb79809fc9247783eaf9021 # v14
with:
version: ${{ steps.toolchain_versions.outputs.emscripten }}
- name: Verify emcc version
run: emcc -v
- name: Check formatting
run: cargo fmt --check
- name: Lint with Clippy
run: cargo clippy --workspace --all-features --all-targets
- name: Lint with Clippy on emscripten target
run: cargo clippy --workspace --all-features --all-targets --target wasm32-unknown-emscripten
ruby:
name: Lint and format Ruby
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/[email protected]
- name: Install Ruby toolchain
uses: ruby/setup-ruby@a6e6f86333f0a2523ece813039b8b4be04560854 # v1.190.0
with:
ruby-version: ".ruby-version"
bundler-cache: true
- name: Lint and check formatting with Rubocop
run: bundle exec rubocop --format github
js-ts:
name: Lint and format JavaScript and TypeScript
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/[email protected]
- name: Install Node.js toolchain
uses: actions/[email protected]
with:
node-version: "lts/*"
- name: Install Nodejs toolchain
run: npm ci
- name: Create stubs for Wasm Sources
run: |
touch src/wasm/playground.js
touch src/wasm/playground.wasm
- name: Compile with TypeScript
run: npx tsc --extendedDiagnostics --listFiles --listEmittedFiles
- name: Lint with eslint
run: npm run lint
text:
name: Lint and format text
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/[email protected]
- name: Install Node.js toolchain
uses: actions/[email protected]
with:
node-version: "lts/*"
- name: Install Nodejs toolchain
run: npm ci
- name: Lint and check formatting with prettier
run: npx prettier --check '**/*'
- name: Lint YAML sources with yamllint
run: |
yamllint --version
echo "Linting YAML sources with yamllint ..."
yamllint --strict --format github .
echo "OK"