CI #71
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: | |
schedule: | |
# Runs at 2:00 AM every Sunday | |
- cron: "0 2 * * 0" | |
push: | |
branches: ["main"] | |
pull_request: | |
branches: ["main"] | |
env: | |
CARGO_TERM_COLOR: always | |
RUST_VERSION: 1.80.1 | |
TINYGO_VERSION: v0.33.0 | |
NODE_VERSION: 22 | |
GO_VERSION: 1.23 | |
jobs: | |
build-apps: | |
name: Build Spin Apps | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Source Code | |
uses: actions/checkout@v2 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "${{ env.GO_VERSION }}" | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ env.RUST_VERSION }} | |
targets: wasm32-wasi,wasm32-wasip1 | |
- name: Cache cargo registry | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cargo/registry | |
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo-registry- | |
- name: Cache cargo git | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cargo/git | |
key: ${{ runner.os }}-cargo-git-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo-git- | |
- name: Cache build artifacts | |
uses: actions/cache@v3 | |
with: | |
path: target | |
key: ${{ runner.os }}-cargo-target-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
${{ runner.os }}-cargo-target- | |
- name: Install Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Install TinyGo | |
uses: rajatjindal/setup-actions/tinygo@v0.0.1 | |
with: | |
version: ${{ env.TINYGO_VERSION }} | |
- name: Install Spin | |
# Latest Spin Stable Release | |
uses: fermyon/actions/spin/setup@v1 | |
with: | |
plugins: js2wasm | |
- name: Install Command Trigger (canary) and it's dependencies | |
run: | | |
spin plugins install --yes --url https://github.com/fermyon/spin-trigger-command/releases/download/canary/trigger-command.json | |
curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash | |
cargo binstall --no-confirm cargo-component | |
- name: Build Aggregate App | |
run: | | |
cd aggregate-pattern | |
cd customers-service | |
npm install | |
cd .. | |
spin build | |
- name: Build CRUD (Go) SQLite App | |
run: | | |
cd http-crud-go-sqlite | |
spin build | |
- name: Build CRUD (JS) PostgreSQL App | |
run: | | |
cd http-crud-js-pg | |
npm install | |
spin build | |
- name: Build Azure Key Vault Provider App | |
run: | | |
cd application-variable-providers/azure-key-vault-provider | |
spin build | |
- name: Build HashiCorp Vault Provider App | |
run: | | |
cd application-variable-providers/vault-provider | |
spin build | |
- name: Build Caching App | |
run: | | |
cd caching-rust | |
spin build | |
- name: Build Content Negotiation App | |
run: | | |
cd content-negotiation-rust | |
spin build | |
- name: Build CORS App | |
run: | | |
cd cors-rust | |
spin build | |
- name: Build CQRS (Rust) App | |
run: | | |
cd cqrs-rust | |
spin build | |
- name: Build CQRS (Go) App | |
run: | | |
cd cqrs-go | |
spin build | |
- name: Build CRUD (JS) SQLite App | |
run: | | |
cd http-crud-js-sqlite | |
npm install | |
spin build | |
- name: Build CRUD (Rust) MySQL App | |
run: | | |
cd http-crud-rust-mysql | |
spin build | |
- name: Build Long Running Jobs over HTTP App | |
run: | | |
cd long-running-jobs-over-http | |
cd api | |
spin build | |
cd .. | |
cd spin-worker | |
spin build | |
- name: Build Publish-Subscribe App | |
run: | | |
cd pub-sub-polyglot | |
cd http-publisher-js | |
npm install | |
spin build | |
cd .. | |
cd mass-publisher | |
cargo build | |
cd .. | |
cd subscriber-go | |
spin build | |
cd .. | |
cd subscriber-rust | |
spin build | |
- name: Build Image Transformation (Rust) App | |
run: | | |
cd image-transformation | |
spin build | |
- name: Build distributed ToDo-app (Rust) | |
run: | | |
cd distributed-todo-app | |
cd src | |
cd http-api | |
spin build | |
cd .. | |
cd migrations | |
spin build | |
cd .. | |
cd stats-generator | |
spin build | |
cd .. |