Skip to content

Modify readme (#428) #1095

Modify readme (#428)

Modify readme (#428) #1095

Workflow file for this run

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') }}