diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000..f808c31 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,56 @@ +name: CI +on: + pull_request: + push: + branches: + - master + tags: '*' +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + julia-version: + - 'lts' + - '1' + - 'nightly' + julia-arch: [x64, x86, aarch64] + os: + - ubuntu-latest + - windows-latest + - macOS-latest + exclude: + - os: macOS-latest + julia-arch: x86 + - os: macOS-latest + julia-arch: x64 + - os: ubuntu-latest + julia-arch: aarch64 + - os: windows-latest + julia-arch: aarch64 + - os: windows-latest + julia-arch: x86 + steps: + - uses: actions/checkout@v4 + - uses: julia-actions/setup-julia@v2 + with: + version: ${{ matrix.julia-version }} + - uses: actions/cache@v4 + env: + cache-name: cache-artifacts + with: + path: ~/.julia/artifacts + key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} + restore-keys: | + ${{ runner.os }}-test-${{ env.cache-name }}- + ${{ runner.os }}-test- + ${{ runner.os }}- + - uses: julia-actions/julia-buildpkg@v1 + - uses: julia-actions/julia-runtest@v1 + - uses: julia-actions/julia-processcoverage@v1 + - uses: codecov/codecov-action@v4 + with: + file: lcov.info + token: ${{ secrets.CODECOV_TOKEN }} + fail_ci_if_error: false