CI #515
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": | |
push: | |
branches: | |
- trunk | |
pull_request: | |
branches: | |
- trunk | |
schedule: | |
- cron: "0 0 * * TUE" | |
jobs: | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- aarch64-apple-darwin | |
- aarch64-unknown-linux-gnu | |
- aarch64-unknown-linux-musl | |
- i686-pc-windows-gnu | |
- i686-pc-windows-msvc | |
- i686-unknown-linux-gnu | |
- x86_64-apple-darwin | |
- x86_64-pc-windows-gnu | |
- x86_64-pc-windows-msvc | |
- x86_64-unknown-linux-gnu | |
- x86_64-unknown-linux-musl | |
steps: | |
- name: Checkout repository | |
uses: actions/[email protected] | |
with: | |
path: generate_third_party_action | |
- name: Generate THIRDPARTY license listing | |
id: generate_third_party | |
uses: ./generate_third_party_action | |
with: | |
artichoke_ref: trunk | |
target_triple: ${{ matrix.target }} | |
output_file: THIRDPARTY | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Check THIRDPARTY output | |
shell: bash | |
run: | | |
if (( $(grep -c . < THIRDPARTY) < 10 )); then | |
exit 1 | |
fi | |
test-all-targets: | |
name: Test (all targets) | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/[email protected] | |
- name: Clone Artichoke | |
uses: actions/[email protected] | |
with: | |
repository: artichoke/artichoke | |
path: "artichoke" | |
- name: Install Ruby toolchain | |
uses: ruby/setup-ruby@7d3497fd78c07c0d84ebafa58d8dac60cd1f0763 # v1.199.0 | |
with: | |
ruby-version: "3.0.0" # see minimum version requirement in gemspec | |
bundler-cache: true | |
- name: Update stable rust | |
run: rustup update stable | |
- name: Install cargo-about | |
run: bundle exec install-cargo-about --platform "${{ runner.os }}" | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Generate THIRDPARTY for all targets | |
run: bundle exec generate-third-party-text-file artichoke/Cargo.toml | |
- name: Check THIRDPARTY output | |
shell: bash | |
run: | | |
if (( $(grep -c . < THIRDPARTY) < 10 )); then | |
exit 1 | |
fi | |
platform-support: | |
name: Platform Support | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
build: | |
- macos | |
- ubuntu | |
- windows | |
include: | |
- build: macos | |
os: macos-latest | |
target: x86_64-apple-darwin | |
- build: ubuntu | |
os: ubuntu-latest | |
target: x86_64-unknown-linux-gnu | |
- build: windows | |
os: windows-latest | |
target: x86_64-pc-windows-msvc | |
steps: | |
- name: Checkout repository | |
uses: actions/[email protected] | |
with: | |
path: generate_third_party_action | |
- name: Generate THIRDPARTY license listing | |
id: generate_third_party | |
uses: ./generate_third_party_action | |
with: | |
artichoke_ref: trunk | |
target_triple: ${{ matrix.target }} | |
output_file: THIRDPARTY | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Check THIRDPARTY output | |
shell: bash | |
run: | | |
if (( $(grep -c . < THIRDPARTY) < 10 )); then | |
exit 1 | |
fi | |
ruby: | |
name: Lint and format Ruby | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/[email protected] | |
- name: Install Ruby toolchain | |
uses: ruby/setup-ruby@7d3497fd78c07c0d84ebafa58d8dac60cd1f0763 # v1.199.0 | |
with: | |
ruby-version: ".ruby-version" | |
bundler-cache: true | |
- name: Lint and check formatting with Rubocop | |
run: bundle exec rubocop --format github | |
- name: Typecheck with Sorbet | |
run: | | |
bundle exec srb tc | |
bundle exec srb tc bin/install-cargo-about bin/generate-third-party-text-file bin/generate-third-party-text-file-single-target | |
text: | |
name: Lint and format text | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/[email protected] | |
- name: Setup Node.js runtime | |
uses: actions/[email protected] | |
with: | |
node-version: "lts/*" | |
- name: Install toolchain | |
run: npm ci | |
- name: Lint and check formatting with prettier | |
run: npx prettier --check '**/*' | |
- name: Lint YAML sources with yamllint | |
run: | | |
yamllint --version | |
echo "Linting YAML sources with yamllint ..." | |
yamllint --strict --format github . | |
echo "OK" |