Skip to content

add wit dir to release artifact (part 2) #14

add wit dir to release artifact (part 2)

add wit dir to release artifact (part 2) #14

Workflow file for this run

# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: Rust
on:
push:
branches: ["main", "v*"]
# Also run on tag pushes, as the release.yml doesn't currently run tests
tags: ["v*"]
pull_request:
branches: ["main", "v*"]
paths-ignore:
- "docs/**"
- "README.md"
- "tests/README.md"
env:
CARGO_TERM_COLOR: always
jobs:
lint-rust:
name: Lint Rust
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v3
- name: setup dependencies
uses: ./.github/actions/spin-ci-dependencies
with:
rust: true
rust-wasm: true
rust-cache: true
- name: Cargo Format
run:
BUILD_SPIN_EXAMPLES=0 cargo fmt --all -- --check
- name: Cargo Clippy
run: BUILD_SPIN_EXAMPLES=0 cargo clippy --workspace --all-targets --all-features -- -D warnings
## This is separated out to remove e2e-tests dependency on windows/mac builds
build-rust-ubuntu:
name: Build Spin Ubuntu
runs-on: ubuntu-latest
needs: [lint-rust]
steps:
- uses: actions/checkout@v3
- name: setup dependencies
uses: ./.github/actions/spin-ci-dependencies
with:
rust: true
rust-wasm: true
rust-cache: true
- name: Cargo Build
run: cargo build --workspace --release --all-targets --all-features --features openssl/vendored
env:
CARGO_INCREMENTAL: 0
- name: "Archive executable artifact"
uses: actions/upload-artifact@v3
with:
name: spin-ubuntu-latest
path: target/release/spin
build-rust:
name: Build Spin
runs-on: ${{ matrix.os }}
needs: [lint-rust]
strategy:
matrix:
os: [windows-latest, macos-latest]
steps:
- uses: actions/checkout@v3
- name: setup dependencies
uses: ./.github/actions/spin-ci-dependencies
with:
rust: true
rust-wasm: true
rust-cache: true
- name: Cargo Build
run: cargo build --workspace --release --all-targets --all-features
env:
CARGO_INCREMENTAL: 0
- name: "Archive executable artifact"
uses: actions/upload-artifact@v3
with:
name: spin-${{ matrix.os }}
path: target/release/spin${{ matrix.os == 'windows-latest' && '.exe' || '' }}
test-rust:
name: Test Spin SDK - Rust
runs-on: ${{ matrix.os }}
needs: [lint-rust]
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v3
- name: setup dependencies
uses: ./.github/actions/spin-ci-dependencies
with:
rust: true
rust-wasm: true
rust-cache: true
bindle: true
nomad: true
hippo: true
- name: Cargo Unit Tests
run: |
make test-unit
env:
CARGO_INCREMENTAL: 0
test-go:
name: Test Spin SDK - Go
runs-on: ubuntu-latest
needs: build-rust-ubuntu
steps:
- uses: actions/checkout@v3
- name: Retrieve saved Spin Binary
uses: actions/download-artifact@v3
with:
name: spin-ubuntu-latest
path: target/debug/
- name: Fix Spin Binary permissions
run: |
ls -lah target/
ls -lah target/debug
chmod +x target/debug/spin
- name: setup dependencies
uses: ./.github/actions/spin-ci-dependencies
with:
rust: true
bindle: true
golang: true
tinygo: true
wasmtime: true
- name: "Test Go SDK"
run: make test-sdk-go
e2e-tests:
runs-on: ubuntu-22.04
needs: build-rust-ubuntu
steps:
- uses: actions/checkout@v3
- name: Retrieve saved Spin Binary
uses: actions/download-artifact@v3
with:
name: spin-ubuntu-latest
path: target/release/
- name: Run e2e tests
run: |
chmod +x `pwd`/target/release/spin
export E2E_VOLUME_MOUNT="-v `pwd`/target/release/spin:/usr/local/bin/spin"
export E2E_FETCH_SPIN=false
make test-spin-up
lint-examples:
name: Lint Examples
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v3
- name: setup dependencies
uses: ./.github/actions/spin-ci-dependencies
with:
rust: true
rust-wasm: true
rust-cache: true
- name: Cargo Clippy
run: make check-rust-examples