-
Notifications
You must be signed in to change notification settings - Fork 18
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
ci: Use GitHub Actions to perform deployment #53
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,22 +3,18 @@ name: Deploy to GitHub Pages | |
on: | ||
# Runs on pushes targeting the default branch | ||
push: | ||
branches: ["master"] | ||
branches: ["main"] | ||
|
||
# Ensure the docs build on PR | ||
pull_request: | ||
|
||
# Allows you to run this workflow manually from the Actions tab | ||
workflow_dispatch: | ||
|
||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | ||
permissions: | ||
contents: write | ||
pages: write | ||
id-token: write | ||
|
||
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. | ||
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. | ||
concurrency: | ||
group: "pages" | ||
cancel-in-progress: false | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It is fine to cancel in progress if you scope to the branch level like is done here. If you are firing off another event trigger on the same branch the goal is to overwrite the previous anyway, so no harm in canceling. |
||
|
||
jobs: | ||
# Build job | ||
|
@@ -40,11 +36,37 @@ jobs: | |
- name: Build website | ||
run: make clean && make publish | ||
|
||
- name: Commit output to gh-pages branch | ||
- name: Fix permissions if needed | ||
run: | | ||
git config user.name "Automated" | ||
git config user.email "[email protected]" | ||
timestamp=$(date -u +%FT%T%z) | ||
ghp-import -m "Generate Pelican site ${timestamp}" --no-history --cname 'conference.scipy.org' --branch gh-pages output | ||
git push --force origin gh-pages | ||
|
||
chmod -c -R +rX "output/" | while read line; do | ||
echo "::warning title=Invalid file permissions automatically fixed::$line" | ||
done | ||
|
||
- name: Upload artifact | ||
uses: actions/upload-pages-artifact@v3 | ||
with: | ||
path: 'output/' | ||
|
||
deploy: | ||
name: Deploy to GitHub Pages | ||
# Deploy on push event to main or with any branch and workflow dispatch | ||
if: (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'workflow_dispatch' | ||
needs: build | ||
# Set permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | ||
permissions: | ||
pages: write # to deploy to Pages | ||
id-token: write # to verify the deployment originates from an appropriate source | ||
Comment on lines
+55
to
+58
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. c.f. https://github.com/actions/deploy-pages?tab=readme-ov-file#usage for why these. |
||
|
||
environment: | ||
name: github-pages | ||
url: ${{ steps.deployment.outputs.page_url }} | ||
Comment on lines
+60
to
+62
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. c.f. https://github.com/actions/deploy-pages?tab=readme-ov-file#usage again for why these choices but make sure to switch to using GitHub Actions under https://github.com/scipy-conference/conference.scipy.org/settings/pages (for the conference website you also are going to want to make sure you're using the custom domain as well.) and then set whatever branch protection rules you'd like for the |
||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Setup Pages | ||
uses: actions/configure-pages@v4 | ||
|
||
- name: Deploy to GitHub Pages | ||
id: deployment | ||
uses: actions/deploy-pages@v4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The default branch name is
main