Scaffolding and bare-bones client #282
Workflow file for this run
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: Continuous Integration | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
- "releases/*" | |
jobs: | |
build-lint-test: | |
strategy: | |
fail-fast: true | |
matrix: | |
# TODO(cretz): Enable Windows (it's slow) | |
# os: [ubuntu-latest, ubuntu-arm, macos-intel, macos-arm, windows-latest] | |
os: [ubuntu-latest, ubuntu-arm, macos-intel, macos-arm] | |
# Earliest and latest supported | |
rubyVersion: ["3.1", "3.3"] | |
include: | |
- os: ubuntu-latest | |
rubyVersion: "3.3" | |
checkTarget: true | |
- os: ubuntu-arm | |
runsOn: ubuntu-24.04-arm64-2-core | |
- os: macos-intel | |
runsOn: macos-12 | |
- os: macos-arm | |
runsOn: macos-14 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
with: | |
submodules: recursive | |
- name: Setup Ruby and Rust | |
uses: oxidize-rb/actions/setup-ruby-and-rust@v1 | |
with: | |
ruby-version: ${{ matrix.rubyVersion }} | |
bundler-cache: true | |
cargo-cache: true | |
- name: Setup Rust cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
workspaces: temporalio/ext -> temporalio/target | |
# Needed for tests currently | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: stable | |
- name: Install protoc | |
uses: arduino/setup-protoc@v3 | |
with: | |
# TODO(cretz): Can upgrade proto when https://github.com/arduino/setup-protoc/issues/99 fixed | |
version: "23.x" | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Lint Rust | |
if: ${{ matrix.checkTarget }} | |
working-directory: ./temporalio | |
run: cargo clippy && cargo fmt --check | |
# TODO(cretz): For checkTarget, regen protos and ensure no diff | |
- name: Lint, compile, test Ruby | |
working-directory: ./temporalio | |
run: bundle install && bundle exec rake TESTOPTS="--verbose" | |
# TODO(cretz): Build gem and smoke test against separate dir |