[CI] Allow failure on julia nightly #130
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: | |
pull_request: | |
branches: | |
- master | |
push: | |
branches: | |
- master | |
tags: '*' | |
jobs: | |
test: | |
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
version: | |
- '1.6' | |
- '1' | |
- 'nightly' | |
os: | |
- ubuntu-latest | |
- windows-latest | |
- macOS-13 | |
- macOS-14 | |
arch: | |
- x64 | |
- aarch64 | |
exclude: | |
- os: ubuntu-latest | |
arch: aarch64 | |
- os: windows-latest | |
arch: aarch64 | |
- os: macOS-13 | |
arch: aarch64 | |
- os: macOS-14 | |
arch: x64 | |
- os: macOS-14 | |
version: '1.6' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: julia-actions/setup-julia@v1 | |
with: | |
version: ${{ matrix.version }} | |
arch: ${{ matrix.arch }} | |
- 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 | |
continue-on-error: ${{ matrix.version == 'nightly' }} | |
- uses: julia-actions/julia-processcoverage@v1 | |
if: matrix.version != 'nightly' # Only process coverage on non-nightly builds | |
- uses: codecov/codecov-action@v4 | |
with: | |
file: lcov.info | |
token: ${{ secrets.CODECOV_TOKEN }} | |
if: matrix.version != 'nightly' # Only send coverage for non-nightly builds | |
- name: Check Nightly Build Status | |
id: check_nightly | |
if: matrix.version == 'nightly' | |
run: | | |
# Placeholder for actual test outcome checking logic | |
# This could involve checking test result files or exit codes | |
# For illustration, we're assuming the test step sets an environment variable or output | |
echo "nightly_status=failed" >> $GITHUB_ENV | |
- name: Comment on PR for Nightly Failure | |
if: env.nightly_status == 'failed' && github.event_name == 'pull_request' | |
uses: actions/github-script@v7 | |
with: | |
github-token: ${{secrets.GITHUB_TOKEN}} | |
script: | | |
const issue_number = context.issue.number; | |
github.rest.issues.createComment({ | |
owner: context.repo.owner, | |
repo: context.repo.name, | |
issue_number: issue_number, | |
body: 'Nightly build failed. This is an expected failure and does not impact the overall success status of the commit.', | |
}); | |
docs: | |
name: Documentation | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: julia-actions/setup-julia@v1 | |
with: | |
version: '1' | |
- run: | | |
julia --project=docs -e ' | |
using Pkg | |
Pkg.develop(PackageSpec(path=pwd())) | |
Pkg.instantiate()' | |
- run: julia --project=docs docs/make.jl | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} |