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
161 lines
No EOL
5 KiB
YAML
161 lines
No EOL
5 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
|
|
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: Run WASM WebDriver tests
|
|
run: |
|
|
cd libs/sharenet-passport
|
|
# Build WASM package for testing
|
|
wasm-pack build --target web --out-dir pkg
|
|
|
|
# Run WebDriver tests (placeholder - implement actual WebDriver tests)
|
|
echo "WebDriver tests would run here with Selenium/WebDriver"
|
|
|
|
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 |