sharenet_passport_creator/.forgejo/workflows/ci.yml
Continuist e7db02ab73
Some checks are pending
Sharenet Passport CI / test-native (push) Waiting to run
Sharenet Passport CI / test-wasm-headless (push) Waiting to run
Sharenet Passport CI / test-wasm-webdriver (push) Waiting to run
Sharenet Passport CI / build-wasm (push) Waiting to run
Sharenet Passport CI / lint (push) Waiting to run
Add additional tests
2025-10-29 20:36:20 -04:00

172 lines
No EOL
5.2 KiB
YAML

name: Sharenet Passport CI
on: [push, pull_request]
jobs:
test-native:
runs-on: [ci]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
components: rust-src
- name: Run native tests
run: |
cd libs/sharenet-passport
cargo test --verbose
test-wasm-headless:
runs-on: [ci]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
components: rust-src
- name: Install wasm-pack
run: |
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- name: Install Firefox and geckodriver
run: |
# Install Firefox
apt-get install -y firefox-esr
# Install geckodriver
GECKODRIVER_VERSION=$(curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest | grep tag_name | cut -d '"' -f 4)
wget -q "https://github.com/mozilla/geckodriver/releases/download/${GECKODRIVER_VERSION}/geckodriver-${GECKODRIVER_VERSION}-linux64.tar.gz"
tar -xzf geckodriver-${GECKODRIVER_VERSION}-linux64.tar.gz
mv geckodriver /usr/local/bin/
chmod +x /usr/local/bin/geckodriver
- name: Run WASM headless tests
run: |
cd libs/sharenet-passport/tests/wasm-headless
wasm-pack test --headless --chrome --firefox --node
test-wasm-webdriver:
runs-on: [ci]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
components: rust-src
- name: Install wasm-pack
run: |
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- name: Install browsers and drivers
run: |
# Install Chrome
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list
apt-get update
apt-get install -y google-chrome-stable
# Install ChromeDriver
CHROME_VERSION=$(google-chrome --version | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+')
CHROMEDRIVER_VERSION=$(curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_VERSION%.*}")
wget -q "https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip"
unzip chromedriver_linux64.zip
mv chromedriver /usr/local/bin/
chmod +x /usr/local/bin/chromedriver
# Install Firefox
apt-get install -y firefox-esr
# Install geckodriver
GECKODRIVER_VERSION=$(curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest | grep tag_name | cut -d '"' -f 4)
wget -q "https://github.com/mozilla/geckodriver/releases/download/${GECKODRIVER_VERSION}/geckodriver-${GECKODRIVER_VERSION}-linux64.tar.gz"
tar -xzf geckodriver-${GECKODRIVER_VERSION}-linux64.tar.gz
mv geckodriver /usr/local/bin/
chmod +x /usr/local/bin/geckodriver
- name: Install Python for HTTP server
run: |
apt-get install -y python3
- name: Build WASM package for WebDriver tests
run: |
cd libs/sharenet-passport
wasm-pack build --target web --out-dir pkg
- name: Install Rust WebDriver dependencies
run: |
cd libs/sharenet-passport/tests/wasm-webdriver
cargo build
- name: Run WASM WebDriver tests
run: |
cd libs/sharenet-passport/tests/wasm-webdriver
# Build and run WebDriver tests
cargo run
build-wasm:
runs-on: [ci]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
components: rust-src
- name: Install wasm-pack
run: |
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- name: Build WASM package
run: |
cd libs/sharenet-passport
wasm-pack build --target web --out-dir pkg
- name: Verify WASM build
run: |
cd libs/sharenet-passport/pkg
ls -la
file sharenet_passport_bg.wasm
lint:
runs-on: [ci]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
components: clippy, rustfmt
- name: Run clippy
run: |
cd libs/sharenet-passport
cargo clippy -- -D warnings
- name: Run rustfmt
run: |
cd libs/sharenet-passport
cargo fmt -- --check