Skip to content

trigger-http: Log TLS startup errors instead of propagating #5295

trigger-http: Log TLS startup errors instead of propagating

trigger-http: Log TLS startup errors instead of propagating #5295

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"
# Serialize workflow runs per ref
# Cancel any outdated, in-flight runs for refs other than 'main'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
env:
CARGO_TERM_COLOR: always
jobs:
lint-rust:
name: Lint Rust
runs-on: "ubuntu-latest"
permissions:
## Allow this job to potentially cancel the running workflow (on failure)
actions: write
steps:
- uses: actions/checkout@v3
- name: setup dependencies
uses: ./.github/actions/spin-ci-dependencies
with:
rust: true
rust-wasm: true
rust-cache: true
- name: Run lints on main code
run: BUILD_SPIN_EXAMPLES=0 make lint
- name: Run lints on examples
run: BUILD_SPIN_EXAMPLES=0 make lint-rust-examples
- name: Cancel everything if linting fails
if: failure()
uses: andymckay/cancel-action@0.2
## This is separated out to remove e2e-tests dependency on windows/mac builds
build-rust-ubuntu:
name: Build Spin Ubuntu
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 Build
run: cargo build --workspace --release --all-targets --features openssl/vendored --features all-tests
env:
CARGO_INCREMENTAL: 0
- name: "Archive executable artifact"
uses: actions/upload-artifact@v3
with:
name: spin-ubuntu-latest
path: target/release/spin
build-spin-static:
name: Build Spin static
runs-on: ubuntu-latest
strategy:
matrix:
config:
- {
arch: "aarch64",
target: "aarch64-unknown-linux-musl",
rustflags: '-C target-feature=+fp16 -C target-feature=+crt-static -C link-self-contained=yes'
}
- {
arch: "amd64",
target: "x86_64-unknown-linux-musl",
rustflags: '-C target-feature=+crt-static -C link-self-contained=yes'
}
steps:
- uses: actions/checkout@v3
- name: setup dependencies
uses: ./.github/actions/spin-ci-dependencies
with:
rust: true
rust-cross: true
rust-cache: true
- name: Cargo Build
run: cross build --target ${{ matrix.config.target }} --release --features openssl/vendored
env:
CARGO_INCREMENTAL: 0
BUILD_SPIN_EXAMPLES: 0
RUSTFLAGS: ${{ matrix.config.rustflags }}
- name: "Archive executable artifact"
uses: actions/upload-artifact@v3
with:
name: spin-static-${{ matrix.config.arch }}
path: target/${{ matrix.config.target }}/release/spin
build-rust:
name: Build Spin
runs-on: ${{ matrix.os }}
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
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
runs-on: ${{ matrix.runner }}
strategy:
matrix:
runner: [ubuntu-22.04-4core-spin, 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
nomad: true
- name: Cargo Unit and Integration Tests
run: |
make test-unit test-integration
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
golang: true
tinygo: true
wasmtime: true
- name: "Test Go SDK"
run: make test-sdk-go
e2e-tests:
# run on a larger runner for more SSD/resource access
runs-on: ubuntu-22.04-4core-spin
if: ${{ github.repository_owner == 'fermyon' }}
steps:
- uses: actions/checkout@v3
# Install all the toolchain dependencies
- name: Install Rust wasm target
run: rustup target add wasm32-wasi && rustup target add wasm32-unknown-unknown
- uses: goto-bus-stop/setup-zig@v2
- uses: actions/setup-go@v4
with:
go-version: '1.20.1'
- uses: acifani/setup-tinygo@v2
with:
tinygo-version: '0.27.0'
- uses: actions/setup-node@v3
with:
node-version: '16.x'
- name: Install Swift
run: |
wget https://github.com/swiftwasm/swift/releases/download/swift-wasm-5.8-SNAPSHOT-2023-02-24-a/swift-wasm-5.8-SNAPSHOT-2023-02-24-a-ubuntu22.04_x86_64.tar.gz
tar -xf swift-wasm-5.8-SNAPSHOT-2023-02-24-a-ubuntu22.04_x86_64.tar.gz
echo "$PWD/swift-wasm-5.8-SNAPSHOT-2023-02-24-a/usr/bin" >> $GITHUB_PATH
- name: Install Grain
run: |
wget https://github.com/grain-lang/grain/releases/download/grain-v0.5.4/grain-linux-x64
chmod +x grain-linux-x64
mv grain-linux-x64 grain
echo "$PWD" >> $GITHUB_PATH
- name: Run e2e tests
run: |
make test-spin-up