CI: Update the deploy workflow (#1142) #673
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
# | |
# Build and deploy the documentation | |
# | |
name: Deploy | |
on: | |
# pull_request: # enable pull_request for testing | |
push: | |
branches: | |
- main | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
env: | |
GMT_DOC_VERSION: 6.4 | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Checkout the gh-pages branch | |
uses: actions/checkout@v3 | |
with: | |
ref: gh-pages | |
path: deploy | |
fetch-depth: 0 | |
- name: Setup Micromamba | |
uses: mamba-org/setup-micromamba@v1.4.3 | |
with: | |
environment-file: environment.yml | |
cache-downloads: true | |
cache-environment: true | |
- name: Download remote data from GitHub | |
uses: dawidd6/action-download-artifact@v2.27.0 | |
with: | |
workflow: cache-data.yml | |
workflow_conclusion: success | |
name: gmt-cache | |
path: .gmt | |
- name: Move and list downloaded remote files | |
run: | | |
# move the .gmt directory to the HOME directory | |
mv .gmt ~/ | |
# Change modification times of the two files, so GMT won't refresh it | |
touch ~/.gmt/server/gmt_data_server.txt ~/.gmt/server/gmt_hash_server.txt | |
ls -lhR ~/.gmt | |
# Because building the PDF document is slow, the building and deployment | |
# process is designed as follows: | |
# | |
# 1. Build the HTML document and use the old PDF document if available | |
# 2. Deploy the HTML document | |
# 3. Build the PDF document | |
# 4. Deploy the PDF document | |
# | |
- name: Build HTML | |
run: make build_html | |
- name: Prepare the documentation for deployment | |
run: | | |
cd deploy | |
# generate the .nojekyll file in the root directory | |
touch .nojekyll | |
# generate CNAME in the root directory | |
echo docs.gmt-china.org > CNAME | |
# Use the old PDF documentation because the new PDF documentation is not built | |
if [ -e ${GMT_DOC_VERSION}/GMT_docs.pdf ]; then | |
cp ${GMT_DOC_VERSION}/GMT_docs.pdf ../build/dirhtml/ | |
fi | |
# Replace the old documentation with tht new one. | |
rm -rvf ${GMT_DOC_VERSION} | |
cp -rvf ../build/dirhtml/ ${GMT_DOC_VERSION}/ | |
# let "latest" link to the latest version | |
rm -rfv latest | |
ln -sfv ${GMT_DOC_VERSION} latest | |
cd .. | |
- name: Deploy the HTML documentation to gh-pages | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
force_orphan: true | |
publish_dir: deploy | |
- name: Install TinyTeX | |
uses: r-lib/actions/setup-tinytex@v2 | |
- name: Install LaTeX packages | |
run: bash scripts/setup-latex.sh | |
- name: Build PDF | |
run: make build_pdf | |
- name: Prepare the documentation for deployment | |
run: cp build/dirhtml/GMT_docs.pdf deploy/${GMT_DOC_VERSION}/ | |
- name: Deploy the PDF documentation to gh-pages | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
force_orphan: true | |
publish_dir: deploy |