Skip to content

devel

devel #423

Workflow file for this run

name: devel
on:
merge_group:
branches:
- master
pull_request:
paths:
- .github/workflows/devel.yml
- .cargo/config.toml
- Cargo.lock
- Cargo.toml
- src/**
- tests/**
push:
branches:
- master
paths:
- .github/workflows/devel.yml
- .cargo/config.toml
- Cargo.lock
- Cargo.toml
- src/**
- tests/**
schedule:
- cron: '30 01 * * *' # Every day at 01:30 UTC
jobs:
build-wasix:
runs-on: ubuntu-22.04
name: "Build WASIX"
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install Tools
run: |
sudo apt-get update
sudo apt-get install -y git llvm clang make lld curl
- name: "Install cargo-wasix"
run: |
cargo install cargo-wasix
- name: "Download Toolchain"
run: |
cargo wasix download-toolchain v2024-06-26.1
- name: "Build"
run: |
cargo wasix build --no-default-features --features compression-gzip,http2,directory-listing --bin static-web-server --release
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: static-web-server
path: target/wasm32-wasmer-wasi/release/static-web-server.wasm
publish-wasix:
runs-on: ubuntu-22.04
if: ${{ github.ref == 'refs/heads/master' }}
needs: [build-wasix]
name: "Publish"
steps:
- uses: actions/checkout@v4
- name: Download Artifact
uses: actions/download-artifact@v4
with:
name: static-web-server
- name: Setup Wasmer
uses: wasmerio/setup-wasmer@v3.1
- name: List contents
run: |
ls
- name: "Push"
run: |
wasmer package push --registry="wasmer.io" --non-interactive --token=${{ secrets.WASMER_CIUSER_PROD_TOKEN }} .
# test:
# name: test
# runs-on: ${{ matrix.os }}
# env:
# # Cargo binary
# CARGO_BIN: cargo
# # When CARGO_BIN is set to CROSS, this is set to `--target matrix.target`
# TARGET_FLAGS: ""
# # When CARGO_BIN is set to CROSS, TARGET_DIR includes matrix.target
# TARGET_DIR: ./target
# # Emit backtraces on panics
# RUST_BACKTRACE: 1
# # Skip tests
# SKIP_TESTS: ""
# # SWS features for Cargo build
# CARGO_FEATURES: "--features=all"
# strategy:
# matrix:
# build:
# - pinned
# - linux-musl
# - linux-musl-arm64
# - linux-musl-i686
# - linux-gnu
# - linux-gnu-arm64
# - linux-gnu-i686
# - linux-arm-gnueabihf
# - linux-musl-armv6
# - linux-musl-armv7
# - linux-ppc64le
# - linux-s390x
# # NOTE: looks like not supported by `listenfd` crate
# # - linux-android-armv7
# - linux-android-arm64
# - netbsd
# - illumos
# - macos
# - macos-arm64
# - windows-msvc
# - windows-msvc-i686
# - windows-msvc-arm64
# - windows-pc-gnu
# include:
# # Specific Rust channels.
# # We test against the latest and minimum Rust stable version.
# - build: pinned
# os: ubuntu-22.04
# rust: 1.76.0
# # Some of our release builds are generated by a nightly compiler to take
# # advantage of the latest optimizations/compile time improvements.
# - build: linux-musl
# os: ubuntu-22.04
# rust: stable
# target: x86_64-unknown-linux-musl
# - build: linux-musl-i686
# os: ubuntu-22.04
# rust: stable
# target: i686-unknown-linux-musl
# - build: linux-musl-arm64
# os: ubuntu-22.04
# rust: stable
# target: aarch64-unknown-linux-musl
# - build: linux-gnu
# os: ubuntu-22.04
# rust: stable
# target: x86_64-unknown-linux-gnu
# - build: linux-gnu-i686
# os: ubuntu-22.04
# rust: stable
# target: i686-unknown-linux-gnu
# - build: linux-gnu-arm64
# os: ubuntu-22.04
# rust: stable
# target: aarch64-unknown-linux-gnu
# - build: linux-arm-gnueabihf
# os: ubuntu-22.04
# rust: stable
# target: arm-unknown-linux-gnueabihf
# - build: linux-musl-armv6
# os: ubuntu-22.04
# rust: stable
# target: arm-unknown-linux-musleabihf
# - build: linux-musl-armv7
# os: ubuntu-22.04
# rust: stable
# target: armv7-unknown-linux-musleabihf
# - build: linux-ppc64le
# os: ubuntu-22.04
# rust: stable
# target: powerpc64le-unknown-linux-gnu
# - build: linux-s390x
# os: ubuntu-22.04
# rust: stable
# target: s390x-unknown-linux-gnu
# # NOTE: looks like not supported by `listenfd` crate
# # - build: linux-android-armv7
# # os: ubuntu-22.04
# # rust: stable
# # target: armv7-linux-androideabi
# - build: linux-android-arm64
# os: ubuntu-22.04
# rust: stable
# target: aarch64-linux-android
# - build: netbsd
# os: ubuntu-22.04
# rust: stable
# target: x86_64-unknown-netbsd
# - build: illumos
# os: ubuntu-22.04
# rust: stable
# target: x86_64-unknown-illumos
# - build: macos
# os: macos-12
# rust: stable
# target: x86_64-apple-darwin
# - build: macos-arm64
# os: macos-12
# rust: stable
# target: aarch64-apple-darwin
# - build: windows-msvc
# os: windows-2022
# rust: 1.77.2
# target: x86_64-pc-windows-msvc
# - build: windows-msvc-i686
# os: windows-2022
# rust: 1.77.2
# target: i686-pc-windows-msvc
# - build: windows-msvc-arm64
# os: windows-2022
# rust: stable
# target: aarch64-pc-windows-msvc
# - build: windows-pc-gnu
# os: windows-2022
# rust: 1.77.2
# target: x86_64-pc-windows-gnu
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# with:
# fetch-depth: 1
# - name: Cache Rust Cargo/Toolchain
# uses: actions/cache@v3
# with:
# path: |
# ~/.cargo
# **/target
# key: rust-${{ matrix.build }}-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }}
# restore-keys: |
# rust-${{ matrix.build }}-${{ matrix.target }}-
# - name: Install Linux/BSD tools
# if: ${{ !contains(matrix.os, 'windows') }}
# run: scripts/ci/install_tools.sh --target=${{ matrix.target }}
# - name: Install Rust
# uses: dtolnay/rust-toolchain@stable
# with:
# toolchain: ${{ matrix.rust }}
# target: ${{ matrix.target }}
# - name: Set up Cross
# if: ${{ !contains(matrix.os, 'windows') && matrix.target != '' }}
# shell: bash
# run: |
# # Use 'cargo.sh' script for Android targets only
# if [[ "${{ matrix.build }}" == "linux-android-armv7" ]] || [[ "${{ matrix.build }}" == "linux-android-arm64" ]]; then
# echo "CARGO_BIN=scripts/ci/cargo.sh" >> $GITHUB_ENV
# else
# target=''
# case "${{ matrix.os }}" in
# *macos*)
# target=x86_64-apple-darwin
# ;;
# *)
# target=x86_64-unknown-linux-musl
# ;;
# esac
# echo "Installing cross..."
# curl -sSL \
# "https://github.com/cross-rs/cross/releases/download/v0.2.5/cross-$target.tar.gz" \
# | sudo tar zxf - -C /usr/local/bin/ cross cross-util
# cross -V
# echo "CARGO_BIN=/usr/local/bin/cross" >> $GITHUB_ENV
# fi
# - name: Setup Cargo
# shell: bash
# run: |
# if [[ "${{ matrix.target }}" != "" ]]; then
# echo "TARGET_FLAGS=--target=${{ matrix.target }}" >> $GITHUB_ENV
# echo "TARGET_DIR=./target/${{ matrix.target }}" >> $GITHUB_ENV
# fi
# echo "cargo command is: ${{ env.CARGO_BIN }}"
# echo "target flag is: ${{ env.TARGET_FLAGS }}"
# echo "target dir is: ${{ env.TARGET_DIR }}"
# - name: Setup Windows ARM64
# if: ${{ contains(matrix.build, 'windows-msvc-arm64') }}
# run: |
# # ring crate: add Visual Studio Build Tools "VS 2022 C++ ARM64 build tools" and "clang" components
# $env:Path += ";C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\VC\Tools\Llvm\x64\bin"
# - name: Skip tests
# shell: bash
# if: ${{ contains(fromJSON('["macos-arm64", "linux-android-arm64", "linux-android-armv7", "netbsd", "illumos", "windows-msvc-arm64"]'), matrix.build) }}
# run: |
# # Can't run tests: cross-compiling
# echo "SKIP_TESTS=--no-run" >> $GITHUB_ENV
# - name: Run tests
# shell: bash
# run: |
# ${{ env.CARGO_BIN }} test --verbose ${{ env.CARGO_FEATURES }} ${{ env.TARGET_FLAGS }} ${{ env.SKIP_TESTS }}
# - name: Run build
# shell: bash
# run: |
# ${{ env.CARGO_BIN }} build --bin static-web-server -vv ${{ env.CARGO_FEATURES }} ${{ env.TARGET_FLAGS }}
# - name: Run executable
# shell: bash
# run: |
# case "${{ matrix.build }}" in
# *-arm*|*bsd*|*illumos*|*ppc64*|*s390x*)
# echo "arm,bsd,illumos,ppc64,s390x are unable to execute on CI for now!"
# ;;
# *)
# if [[ "${{ matrix.os }}" == "windows-2022" ]]; then
# target/${{ matrix.target }}/debug/static-web-server.exe -h
# else
# target/${{ matrix.target }}/debug/static-web-server -h
# fi
# ;;
# esac
# checks:
# name: checks
# runs-on: ubuntu-22.04
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# with:
# fetch-depth: 1
# - name: Check typos
# uses: crate-ci/typos@master
# with:
# config: ./.github/workflows/config/typos.toml
# - name: Install stable toolchain
# uses: dtolnay/rust-toolchain@stable
# with:
# toolchain: stable
# components: rustfmt, clippy
# - name: Check formatting
# run: |
# cargo fmt --all -- --check
# - name: Check via Clippy
# run: |
# cargo clippy --all-features -- -D warnings
# - name: Check crate docs
# run: |
# cargo doc --lib --no-deps