[Proof of Concept] Multi-GPU prototype (single node) #392
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: | |
- main | |
tags: ['*'] | |
paths-ignore: | |
- 'CITATION.bib' | |
- 'LICENSE.md' | |
- 'README.md' | |
- '.zenodo.json' | |
- '.github/workflows/CompatHelper.yml' | |
- '.github/workflows/SpellCheck.yml' | |
- '.github/workflows/TagBot.yml' | |
- 'docs/**' | |
pull_request: | |
paths-ignore: | |
- 'CITATION.bib' | |
- 'LICENSE.md' | |
- 'README.md' | |
- '.zenodo.json' | |
- '.github/workflows/CompatHelper.yml' | |
- '.github/workflows/SpellCheck.yml' | |
- '.github/workflows/TagBot.yml' | |
- 'docs/**' | |
workflow_dispatch: | |
concurrency: | |
# Skip intermediate builds: always. | |
# Cancel intermediate builds: only if it is a pull request build. | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} | |
jobs: | |
build: | |
name: Run Tests (Julia ${{ matrix.version }} - ${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
# Don't cancel all running jobs when one job fails | |
fail-fast: false | |
matrix: | |
version: | |
- 'min' # the earliest supported version compatible with the project | |
- '1' # the latest stable 1.x release | |
os: | |
- ubuntu-latest | |
- windows-latest | |
- macos-14 | |
steps: | |
- name: Check out project | |
uses: actions/checkout@v4 | |
- name: Set up Julia | |
uses: julia-actions/setup-julia@v2 | |
with: | |
version: ${{ matrix.version }} | |
- name: Display Julia version | |
run: julia -e 'using InteractiveUtils; versioninfo(verbose=true)' | |
- uses: julia-actions/cache@v2 | |
- name: Build package | |
uses: julia-actions/julia-buildpkg@v1 | |
- name: Run unit tests | |
uses: julia-actions/julia-runtest@v1 | |
with: | |
annotate: true | |
# Only run coverage in one Job (Ubuntu and latest Julia version) | |
coverage: ${{ matrix.os == 'ubuntu-latest' && matrix.version == '1' }} | |
env: | |
POINTNEIGHBORS_TEST: unit | |
- name: Process coverage results | |
# Only run coverage in one Job (Ubuntu and latest Julia version) | |
if: matrix.os == 'ubuntu-latest' && matrix.version == '1' | |
uses: julia-actions/julia-processcoverage@v1 | |
with: | |
directories: src,test | |
- name: Upload coverage report to Codecov | |
# Only run coverage in one Job (Ubuntu and latest Julia version) | |
if: matrix.os == 'ubuntu-latest' && matrix.version == '1' | |
uses: codecov/codecov-action@v5 | |
with: | |
files: lcov.info | |
fail_ci_if_error: true | |
flags: unit | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
- name: Run benchmark tests | |
uses: julia-actions/julia-runtest@v1 | |
with: | |
annotate: true | |
coverage: false | |
env: | |
POINTNEIGHBORS_TEST: benchmarks | |