Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

New: Add GitHub Actions workflow to deploy v5 vanilla course to GitHub Pages (fix #3479)#3733

Merged
swashbuck merged 11 commits intomasterfrom
issue/3479
Dec 8, 2025
Merged

New: Add GitHub Actions workflow to deploy v5 vanilla course to GitHub Pages (fix #3479)#3733
swashbuck merged 11 commits intomasterfrom
issue/3479

Conversation

Copy link
Contributor

swashbuck commented Nov 12, 2025 *
edited
Loading

Fix #3479

New

  • Adds GitHub Actions workflow step to deploy v5 vanilla course to GitHub Pages: https://adaptlearning.github.io/v5demo/
  • Workflow will run when a new release is published or every Tuesday at 7am UTC.

Update

  • Update Node version environment to lts/* in test.yml

Questions

  1. Should we update all node versions in the workflow files (ex. test.yml) to use the same version? If so, should we use lts/* or 18? Decision was to use lts/*
  2. How do we "advertise" the new site? Add to the adapt_framework README.md, add to the wiki, etc?
    a. Noting that https://github.com/adaptlearning doesn't actually have a README.md doc. First time visitors may not realize that they need to visit the adapt_framework repo to get an overview. Separate issue to consider...
  3. Would it be useful to run this workflow on a schedule so that the vanilla course always has the most up to date plugins? For instance, set this up to run once a week and refresh the site. Decision was to also run this on a schedule

Technical explanations

How It Works

How It Works

  1. releases.yml runs on push to master - semantic-release creates GitHub release + tag
  2. GitHub release published - triggers build-and-deploy.yml. Note that the schedule also triggers this workflow.
  3. Workflow runs npm ci - grunt build - deploys to master branch of adaptlearning/adaptlearning.github.io repo in the v5demo directory.
  4. No cleanup needed (workflow runs in isolated environment)
Deployment Options Considered

Deployment Options Considered

peaceiris/actions-gh-pages@v4 (chosen):

  • Community action with 11k+ stars, well-maintained since 2019
  • Single-step deployment process
  • Works with traditional gh-pages branch approach
  • Supports external repository deployment
  • Perfect for custom build tools like Grunt
  • Simpler for release-triggered workflows

actions/deploy-pages (official GitHub alternative):

  • Official GitHub action (launched ~2022)
  • Two-step process: upload artifact - deploy
  • Requires "Deploy from GitHub Actions" source setting (not branch-based)
  • GitHub's stated direction for Pages
  • Better for static site generators or complex CI/CD
  • More modular but adds complexity for simple use cases

Key Differences

Deployment Method:

  • peaceiris: Pushes content directly to a branch (typically gh-pages)
  • actions/deploy-pages: Uses artifacts uploaded via actions/upload-pages-artifact

Official Status:

Why We Chose peaceiris/actions-gh-pages@v4

For our specific use case (release-triggered Adapt course deployments with Grunt builds):

  1. Simplicity - Single-step deployment vs two-step artifact approach
  2. Branch-based - Works with traditional gh-pages branch setup
  3. Proven - Widely used, well-documented, stable
  4. No workflow changes needed - Works seamlessly with our release workflow

Both actions are valid and actively maintained. We chose peaceiris for simplicity, not because it's superior to the official action.

swashbuck self-assigned this Nov 12, 2025
swashbuck added the enhancement label Nov 12, 2025
oliverfoster added this to adapt_framework: The TODO Board Nov 12, 2025
github-project-automation bot moved this to New in adapt_framework: The TODO Board Nov 12, 2025
swashbuck moved this from New to Assigned in adapt_framework: The TODO Board Nov 12, 2025
swashbuck marked this pull request as ready for review November 12, 2025 20:01
swashbuck moved this from Assigned to Needs Reviewing in adapt_framework: The TODO Board Nov 12, 2025
Copy link
Contributor Author

swashbuck commented Nov 12, 2025

Ready for review.

Copy link
Contributor

cahirodoherty-learningpool commented Nov 13, 2025

  1. Should we update all node versions in the workflow files (ex. test.yml) to use the same version? If so, should we use lts/* or 18?
  2. How do we "advertise" the new site? Add to the adapt_framework README.md, add to the wiki, etc?
    a. Noting that https://github.com/adaptlearning doesn't actually have a README.md doc. First time visitors may not realize that they need to visit the adapt_framework repo to get an overview. Separate issue to consider...
  3. Would it be useful to run this workflow on a schedule so that the vanilla course always has the most up to date plugins? For instance, set this up to run once a week and refresh the site.
  1. I would be in favour of using lts/*. Any updates to other scripts could be performed as a separate "Chore:" PR
  2. Adding to the wiki definitely makes sense to me. I guess there's no harm in adding a reference to the FW Readme also
  3. I would support running on a schedule. The testing action already runs on a daily schedule for this reason, but as you mentioned, a weekly run would suffice for this if its also running on publish/release/version-tag anyway
oliverfoster and swashbuck reacted with thumbs up emoji

Copy link
Member

oliverfoster commented Nov 13, 2025 *
edited
Loading

Deploy to the external repository, please. We should definitely not add a build folder to this repo.

https://github.com/peaceiris/actions-gh-pages?tab=readme-ov-file#%EF%B8%8F-deploy-to-external-repository-external_repository

This repo is the expected destination: https://github.com/adaptlearning/adaptlearning.github.io
In folder v5demo.
Which looks like this on gh pages: https://adaptlearning.github.io/v5demo/

The token ${{ secrets.RELEASES_TOKEN}} or ${{ secrets.ADDTOPROJECT_TOKEN}} may work https://github.com/adaptlearning/adapt_framework/settings/secrets/actions.

swashbuck reacted with thumbs up emoji

swashbuck changed the title New: Adds GitHub Actions workflow step to deploy vanilla course to GitHub Pages (fix #3479) New: Adds GitHub Actions workflow step to deploy v5 vanilla course to GitHub Pages (fix #3479) Nov 13, 2025
swashbuck changed the title New: Adds GitHub Actions workflow step to deploy v5 vanilla course to GitHub Pages (fix #3479) New: Add GitHub Actions workflow to deploy v5 vanilla course to GitHub Pages (fix #3479) Nov 13, 2025
oliverfoster approved these changes Nov 13, 2025
Copy link
Contributor Author

swashbuck commented Nov 13, 2025

Added the workflow_dispatch event so that we can run manually 8db2f2a

cahirodoherty-learningpool approved these changes Nov 17, 2025
Copy link
Contributor

Choose a reason for hiding this comment

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

ethan-lp approved these changes Dec 4, 2025
swashbuck merged commit 2700aec into master Dec 8, 2025
1 check passed
swashbuck deleted the issue/3479 branch December 8, 2025 16:29
github-project-automation bot moved this from Needs Reviewing to Recently Released in adapt_framework: The TODO Board Dec 8, 2025
Copy link

github-actions bot commented Dec 8, 2025

This PR is included in version 5.54.0

The release is available on GitHub release

Your semantic-release bot

github-actions bot added the released label Dec 8, 2025
Copy link
Contributor Author

swashbuck commented Dec 9, 2025

The workflow failed and needs to be fixed. Something with the SSH key?

"Error loading key "/home/runner/.ssh/github": error in libcrypto"

https://github.com/adaptlearning/adapt_framework/actions/runs/20055268099/job/57519135082

swashbuck mentioned this pull request Dec 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

oliverfoster oliverfoster approved these changes

ethan-lp ethan-lp approved these changes

+1 more reviewer

cahirodoherty-learningpool cahirodoherty-learningpool approved these changes

Reviewers whose approvals may not affect merge requirements

Assignees

swashbuck

Projects

Status: Recently Released

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Auto publish to ghpages after release

4 participants