GMT CI Caches #201
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
# | |
# Create CI caches for: | |
# | |
# 1. GMT remote data for building documentation and running tests | |
# 2. vcpkg libraries on Windows | |
# | |
name: GMT CI Caches | |
on: | |
# Uncomment the "push:" line to manually re-cache data artifacts in pushes | |
#push: | |
# Uncomment the 'pull_request:' line to manually re-cache data artifacts in PRs | |
# pull_request: | |
# Schedule runs on 12 noon every Sunday | |
schedule: | |
- cron: '0 12 * * 0' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} | |
jobs: | |
data_cache: | |
name: Cache GMT data | |
# We have to use macOS, because Linux/Windows agents may fail to download | |
runs-on: macOS-latest | |
steps: | |
- name: Install GMT | |
run: brew install gmt | |
- name: Download remote data | |
run: | | |
# list of datasets used in tests | |
data="@earth_relief_01d_p \ | |
@earth_relief_01d_g \ | |
@earth_relief_30m_p \ | |
@earth_relief_20m_p \ | |
@earth_relief_15m_p \ | |
@earth_relief_10m_p \ | |
@earth_relief_06m_p \ | |
@earth_relief_05m_p \ | |
@earth_relief_05m_g \ | |
@earth_relief_04m_p \ | |
@N30E000.earth_relief_02m_p.nc \ | |
@N30W060.earth_relief_02m_p.nc \ | |
@N30W120.earth_relief_02m_p.nc \ | |
@N30W180.earth_relief_02m_p.nc \ | |
@S30E000.earth_relief_02m_p.nc \ | |
@S30W060.earth_relief_02m_p.nc \ | |
@S30W180.earth_relief_02m_p.nc \ | |
@S30W060.earth_relief_02m_g.nc \ | |
@N00E000.earth_relief_01m_p.nc \ | |
@N00W180.earth_relief_01m_p.nc \ | |
@S30W060.earth_relief_01m_p.nc \ | |
@S60W120.earth_relief_01m_g.nc \ | |
@N30W105.earth_relief_30s_p.nc \ | |
@N30W120.earth_relief_30s_p.nc \ | |
@N45E000.earth_relief_30s_p.nc \ | |
@N40E000.earth_relief_15s_p.nc \ | |
@N44E003.earth_relief_03s_g.nc \ | |
@N44E004.earth_relief_03s_g.nc \ | |
@earth_age_10m_p \ | |
@earth_age_06m_p \ | |
@S30W180.earth_age_02m_p.nc \ | |
@earth_day_20m_p \ | |
@earth_day_15m_p \ | |
@earth_day_01m_p \ | |
@earth_day_01d_p \ | |
@earth_night_20m_p \ | |
@earth_mask_30s_p" | |
# Use the static server | |
export GMT_DATA_SERVER=static | |
# Download remote data multiple times to make sure all are downloaded | |
gmt which -Ga $data | |
gmt which -Ga $data | |
gmt which -Ga $data | |
# Download cache files multiple times to make sure all are downloaded | |
gmt get -Dcache | |
gmt get -Dcache | |
gmt get -Dcache | |
# check files | |
ls -R ~/.gmt | |
# Upload the downloaded files as artifacts to GitHub | |
- name: Upload artifacts to GitHub | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gmt-cache | |
path: | | |
~/.gmt/cache | |
~/.gmt/server | |
vcpkg_cache: | |
name: Cache vcpkg libraries | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3.6.0 | |
- name: Install vcpkg libraries | |
run: bash ci/install-dependencies-windows.sh | |
- name: Upload artifacts to GitHub | |
uses: actions/upload-artifact@v4 | |
with: | |
name: vcpkg-cache | |
# VCPKG_INSTALLATION_ROOT is C:\vcpkg | |
path: C:\vcpkg\installed\ |