Modify readme (#428) #1095
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
paths-ignore: | |
- "docs/**" | |
- "README.md" | |
workflow_call: | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
# | |
# Check formatting of the source code | |
# | |
rustfmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
- name: "Install Wasm Targets and Deps" | |
run: | | |
make install-deps | |
rustup target add wasm32-wasi | |
rustup target add wasm32-unknown-unknown | |
- uses: Swatinem/rust-cache@v2 | |
- name: Format source code | |
run: make improve | |
# | |
# Build and test on multiple platforms | |
# | |
build: | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
matrix: | |
config: | |
- os: "ubuntu-latest" | |
platformAgnosticChecks: true | |
- { | |
os: "macos-latest", | |
arch: "amd64" | |
} | |
- { | |
os: macos-latest, | |
arch: aarch64, | |
extraArgs: "--target aarch64-apple-darwin" | |
} | |
- os: "windows-latest" | |
extension: ".exe" | |
steps: | |
# | |
# Update build environment | |
# | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
- uses: Swatinem/rust-cache@v2 | |
# | |
# Install build tools | |
# | |
- name: "Install Dependencies on Linux" | |
run: make install-deps | |
if: ${{ fromJSON(matrix.config.os == 'ubuntu-latest') }} | |
- name: "Install Dependencies on MacOS" | |
run: make install-deps-macos | |
if: ${{ fromJSON(matrix.config.os == 'macos-latest') }} | |
- name: "Install make tool on Windows" | |
run: choco install make -y | |
if: ${{ fromJSON(matrix.config.os == 'windows-latest') }} | |
- name: "Install Dependencies on Windows" | |
run: make install-deps-win | |
if: ${{ fromJSON(matrix.config.os == 'windows-latest') }} | |
- name: "Install Rust Wasm targets" | |
run: | | |
rustup target add wasm32-wasi | |
rustup target add wasm32-unknown-unknown | |
rustup target add aarch64-apple-darwin | |
- name: "Install wit-bindgen-cli" | |
run: cargo install --git https://github.com/bytecodealliance/wit-bindgen wit-bindgen-cli --tag v0.2.0 | |
# | |
# Build | |
# | |
- name: "Build SpiderLightning and Slight" | |
run: make build | |
if: ${{ matrix.config.platformAgnosticChecks }} | |
- name: "Build SpiderLightning and Slight" | |
run: make build | |
if: ${{ fromJSON(matrix.config.os == 'macos-latest') && | |
fromJSON(matrix.config.arch == 'amd64') }} | |
- name: "Build SpiderLightning and Slight" | |
run: cargo build --release ${{ matrix.config.extraArgs }} | |
if: ${{ fromJSON(matrix.config.os == 'macos-latest') && | |
fromJSON(matrix.config.arch == 'aarch64') }} | |
- name: "Build SpiderLightning and Slight" | |
run: make build | |
if: ${{ fromJSON(matrix.config.os == 'windows-latest') }} | |
env: | |
OPENSSL_DIR: C:\Program Files\OpenSSL\ | |
OPENSSL_NO_VENDOR: true | |
# | |
# Build Examples | |
# | |
- name: "Build Examples" | |
run: make build-rust | |
# | |
# Run Unit Tests | |
# | |
- name: "Run Unit Tests" | |
run: make test | |
if: ${{ matrix.config.platformAgnosticChecks }} | |
- name: "Run Unit Tests" | |
run: make test | |
if: ${{ fromJSON(matrix.config.os == 'macos-latest') }} | |
- name: "Run Unit Tests" | |
run: make test | |
if: ${{ fromJSON(matrix.config.os == 'windows-latest') }} | |
env: | |
OPENSSL_DIR: C:\Program Files\OpenSSL\ | |
OPENSSL_NO_VENDOR: true | |
# | |
# Prepare release and upload artifacts for release.yml | |
# | |
- run: make prepare-release | |
if: ${{ fromJSON(matrix.config.os == 'ubuntu-latest') }} | |
- name: upload ubuntu-latest tar | |
uses: actions/upload-artifact@v3 | |
with: | |
name: slight-linux-x86_64.tar.gz | |
path: ./slight-linux-x86_64.tar.gz | |
retention-days: 5 | |
if: ${{ fromJSON(matrix.config.os == 'ubuntu-latest') }} | |
- name: upload rust template tar | |
uses: actions/upload-artifact@v3 | |
with: | |
name: rust-template.tar.gz | |
path: ./rust-template.tar.gz | |
retention-days: 5 | |
if: ${{ fromJSON(matrix.config.os == 'ubuntu-latest') }} | |
- name: upload c template tar | |
uses: actions/upload-artifact@v3 | |
with: | |
name: c-template.tar.gz | |
path: ./c-template.tar.gz | |
retention-days: 5 | |
if: ${{ fromJSON(matrix.config.os == 'ubuntu-latest') }} | |
- name: upload js template tar | |
uses: actions/upload-artifact@v3 | |
with: | |
name: js-template.tar.gz | |
path: ./js-template.tar.gz | |
retention-days: 5 | |
if: ${{ fromJSON(matrix.config.os == 'ubuntu-latest') }} | |
- run: make prepare-release-win | |
if: ${{ fromJSON(matrix.config.os == 'windows-latest') }} | |
- name: upload windows-latest tar | |
uses: actions/upload-artifact@v3 | |
with: | |
name: slight-windows-x86_64.tar.gz | |
path: ./slight-windows-x86_64.tar.gz | |
retention-days: 5 | |
if: ${{ fromJSON(matrix.config.os == 'windows-latest') }} | |
- run: make prepare-release-mac | |
if: ${{ fromJSON(matrix.config.os == 'macos-latest') && | |
fromJSON(matrix.config.arch == 'amd64') }} | |
- name: upload macos-amd64-latest tar | |
uses: actions/upload-artifact@v3 | |
with: | |
name: slight-macos-amd64.tar.gz | |
path: ./slight-macos-amd64.tar.gz | |
retention-days: 5 | |
if: ${{ fromJSON(matrix.config.os == 'macos-latest') && | |
fromJSON(matrix.config.arch == 'amd64') }} | |
- name: "tar release for macos-aarch64" | |
run: tar -C target/ -czvf slight-macos-aarch64.tar.gz aarch64-apple-darwin/release/slight | |
if: ${{ fromJSON(matrix.config.os == 'macos-latest') && | |
fromJSON(matrix.config.arch == 'aarch64') }} | |
- name: upload macos-aarch64-latest tar | |
uses: actions/upload-artifact@v3 | |
with: | |
name: slight-macos-aarch64.tar.gz | |
path: ./slight-macos-aarch64.tar.gz | |
retention-days: 5 | |
if: ${{ fromJSON(matrix.config.os == 'macos-latest') && | |
fromJSON(matrix.config.arch == 'aarch64') }} |