Repository navigation
CompatHelper: bump compat for Breeze in [weakdeps] to 0.12, (keep exi… #566
This file contains hidden or 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: Data tests | |
| # Tests that need real remote datasets (JRA55, ETOPO, ECCO, EN4, WOA, ...). | |
| # The default `CI` workflow is offline; these run nightly, on demand, on | |
| # pushes to `main`, and on pull requests labeled `run data tests`. | |
| on: | |
| schedule: | |
| - cron: "17 3 * * *" | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| types: [opened, synchronize, reopened, labeled] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| actions: write | |
| contents: read | |
| env: | |
| ECCO_USERNAME: ${{ secrets.ECCO_USERNAME }} | |
| ECCO_WEBDAV_PASSWORD: ${{ secrets.ECCO_WEBDAV_PASSWORD }} | |
| COPERNICUSMARINE_SERVICE_USERNAME: ${{ secrets.COPERNICUSMARINE_SERVICE_USERNAME }} | |
| COPERNICUSMARINE_SERVICE_PASSWORD: ${{ secrets.COPERNICUSMARINE_SERVICE_PASSWORD }} | |
| CDSAPI_URL: "https://cds.climate.copernicus.eu/api" | |
| CDSAPI_KEY: ${{ secrets.CDSAPI_KEY }} | |
| DESTINE_ACCESS_TOKEN: ${{ secrets.DESTINE_ACCESS_TOKEN }} | |
| DATADEPS_ALWAYS_ACCEPT: true | |
| JULIA_PKG_SERVER_REGISTRY_PREFERENCE: 'eager' | |
| NUMERICALEARTH_TEST_REMOTE_DATA: "true" | |
| jobs: | |
| data_tests: | |
| name: (GPU) - real data | |
| if: ${{ github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'run data tests') }} | |
| runs-on: aws-linux-nvidia-gpu-l4 | |
| container: | |
| image: ghcr.io/numericalearth/numerical-earth-docker-images:test-julia_1.12.5 | |
| options: --gpus=all | |
| volumes: | |
| - /opt:/host-opt | |
| - /usr/local:/host-usr-local | |
| timeout-minutes: 180 | |
| env: | |
| GPU_TEST: "true" | |
| OPENBLAS_NUM_THREADS: 1 | |
| TMPDIR: /__w/_temp | |
| JULIA_DEPOT_PATH: '/__w/_temp/depot:/usr/local/share/julia:' | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Create workspace temp directories | |
| run: mkdir -p "${TMPDIR}" | |
| - name: Configure git safe directory | |
| run: git config --global --add safe.directory ${PWD} | |
| - name: Copy LocalPreferences | |
| run: cp -v /usr/local/share/julia/environments/numericalearth/LocalPreferences.toml test/. | |
| - name: Clean up space on host device | |
| run: | | |
| rm -rfv /host-opt/nvidia/ /host-usr-local/cuda* | |
| df -hT | |
| - name: Update registry | |
| shell: julia --color=yes {0} | |
| run: | | |
| using Pkg | |
| Pkg.Registry.rm("General") | |
| Pkg.Registry.add("General") | |
| Pkg.Registry.update() | |
| # From the root project `PythonCall` is a weakdep, so CondaPkg installs no Python and | |
| # `NumericalEarthVerosExt` fails to precompile; `test` has it as a direct dep. | |
| - name: Instantiate test environment | |
| timeout-minutes: 60 | |
| shell: bash | |
| run: | | |
| julia --project=test --color=yes --check-bounds=yes -e ' | |
| using Pkg; | |
| Pkg.instantiate() | |
| ' | |
| - name: Run tests | |
| run: | | |
| earlyoom -m 3 -s 100 -r 300 --prefer 'julia' & | |
| julia --project --color=yes --check-bounds=yes -e ' | |
| using Pkg; | |
| Pkg.test(; coverage=true, | |
| julia_args=["--check-bounds=yes", "--compiled-modules=yes", "-O0"], | |
| test_args=["--verbose", "--jobs=4"]) | |
| ' | |
| - uses: julia-actions/julia-processcoverage@v1 | |
| - uses: codecov/codecov-action@v7 | |
| with: | |
| files: lcov.info | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| - name: Show available storage at the end | |
| if: always() | |
| timeout-minutes: 2 | |
| run: df -h / |