Skip to content

Overhaul CI strategy #433

Overhaul CI strategy

Overhaul CI strategy #433

Workflow file for this run

name: CI
on:
push:
branches:
- main
tags: ['*']
pull_request:
jobs:
quick-test:
name: Julia 1 - ubuntu-latest - x64 - ${{ github.event_name }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@v2
with:
version: 1
arch: x86
- uses: julia-actions/julia-buildpkg@v1
- name: Setup tmate session
uses: mxschmitt/action-tmate@v3
- uses: julia-actions/julia-runtest@v1
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v2
with:
files: lcov.info
test:
name: Julia ${{ matrix.julia-version }} - ${{ matrix.os }} - ${{ matrix.julia-arch }} - ${{ github.event_name }}
needs: quick-test
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
julia-version: [min, lts, 1, pre, nightly]
julia-arch: [x64, x86, aarch64]
os: [ubuntu-latest, macOS-latest, windows-latest]
exclude:
- os: ubuntu-latest
julia-arch: aarch64
- os: windows-latest
julia-arch: aarch64
- os: macOS-latest
julia-arch: x86
# macOS-latest x64 uses rosetta
- os: macOS-latest
julia-arch: aarch64
julia-version: min # old versions of Julia do not have aarch64 binaries
- os: ubuntu-latest # already tested
julia-version: 1
julia-arch: x64
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@v2
with:
version: ${{ matrix.julia-version }}
arch: ${{ matrix.julia-arch }}
- uses: julia-actions/cache@v1
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v2
with:
files: lcov.info
docs:
name: Documentation
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@v2
with:
version: '1'
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-docdeploy@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: |
julia --project=docs -e '
using Documenter: DocMeta, doctest
using Chairmarks
DocMeta.setdocmeta!(Chairmarks, :DocTestSetup, :(using Chairmarks); recursive=true)
doctest(Chairmarks)'
typos:
name: Typos
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: crate-ci/typos@master