Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump GitHub Actions #260

Merged
merged 9 commits into from
Jun 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# Regularly update Docker tags and Actions steps
version: 2
updates:
- package-ecosystem: "docker"
directory: "/.devcontainer"
schedule:
interval: "daily"
- package-ecosystem: "github-actions"
directory: "/.github"
- package-ecosystem: "github-actions"
directory: "/.github"
schedule:
interval: "monthly"
44 changes: 27 additions & 17 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
name: CI
name: Deploy Website to GitHub Pages

on:
push:
branches: main
pull_request:
branches: main

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
Expand All @@ -18,19 +16,19 @@ concurrency:
cancel-in-progress: true

jobs:
build-and-deploy:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Setup JupyterBook Cache
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: _build
# NOTE: change key to "jupyterbook-DATE" to force rebuilding cache
key: jupyterbook-20230707
key: jupyterbook-20240517

- name: Install Conda environment with Micromamba
uses: mamba-org/setup-micromamba@v1
Expand All @@ -50,19 +48,31 @@ jobs:
run: |
if (test -a _build/html/reports/*log); then cat _build/html/reports/*log ; fi

- name: Save Build
- name: Save Build Folder
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: build
path: _build/

- name: Publish to GitHub Pages
if: github.ref == 'refs/heads/main'
uses: peaceiris/actions-gh-pages@v3
- name: Upload Pages Artifact
uses: actions/upload-pages-artifact@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: _build/html
publish_branch: gh-pages
cname: tutorial.xarray.dev
enable_jekyll: false
path: _build/html

# Publish Website to GitHub Pages if built successfully
deploy:
needs: build
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

steps:
- name: Setup Pages
uses: actions/configure-pages@v5

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
64 changes: 0 additions & 64 deletions .github/workflows/preview.yaml

This file was deleted.

53 changes: 53 additions & 0 deletions .github/workflows/pull_request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Pull Request Build

on:
pull_request:
types: [opened, synchronize, reopened, closed]
JessicaS11 marked this conversation as resolved.
Show resolved Hide resolved

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
preview:
runs-on: ubuntu-latest
defaults:
run:
shell: bash -el {0}
steps:
- name: Checkout repository
if: github.event.action != 'closed'
uses: actions/checkout@v4

- name: Setup JupyterBook Cache
if: github.event.action != 'closed'
uses: actions/cache@v4
with:
path: _build
# NOTE: change key to "jupyterbook-DATE" to force rebuilding cache
key: jupyterbook-20240517

- name: Install Conda environment with Micromamba
if: github.event.action != 'closed'
uses: mamba-org/setup-micromamba@v1
with:
environment-file: conda/conda-lock.yml
environment-name: xarray-tutorial
cache-environment: true

- name: Build JupyterBook
if: github.event.action != 'closed'
run: |
jupyter-book build ./ --warningiserror --keep-going

- name: Dump Build Logs
if: github.event.action != 'closed'
run: |
if (test -a _build/html/reports/*log); then cat _build/html/reports/*log ; fi

- name: Upload artifact
if: github.event.action != 'closed'
uses: actions/upload-artifact@v4
with:
name: html
path: book/_build/html
2 changes: 1 addition & 1 deletion .github/workflows/qaqc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
shell: bash -el {0}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Install Conda environment with Micromamba
uses: mamba-org/setup-micromamba@v1
Expand Down
42 changes: 42 additions & 0 deletions .github/workflows/surge_preview.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Pull Request Preview

on:
workflow_run:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This only runs on the main branch, so need to merge to actually see it in action

workflows: ["Pull Request Build"]
types:
- completed

permissions:
pull-requests: write # allow surge-preview to create/update PR comments

concurrency:
group: ${{ github.workflow }}-${{ github.event.workflow_run.id }}
cancel-in-progress: true

jobs:
# NOTE: match job name in pull_request.yaml
preview:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' }}

steps:
# Ensure folder exists for PR 'closed' case
- run: mkdir html

# Download built HTML from PR Build workflow
- uses: actions/download-artifact@v4
continue-on-error: true
with:
github-token: ${{ github.token }}
run-id: ${{ github.event.workflow_run.id }}

- name: Manage Surge.sh Deployment
id: preview_step
uses: afc163/surge-preview@v1
with:
surge_token: ${{ secrets.SURGE_TOKEN }}
github_token: ${{ secrets.GITHUB_TOKEN }}
build: echo 'Uploading html/ folder contents to Surge.sh...'
dist: html # NOTE: match upload_artifact name in pull_request.yaml
failOnError: true
teardown: true
Loading