mirror of
https://github.com/snachodog/just-the-docs.git
synced 2025-04-15 23:52:23 -06:00
This is a PR with three key changes: 1. Consolidate two identical CI files, `ci.yml` and `ci-master.yml` into one file 2. Consolidate two almost-identical jobs (`jekyll-build-*`) into one job with a strategy matrix 3. Update various dependencies/platforms * Node: `12.x` -> `16.x` (only in CI); `12.x` has been EOL for a while * Ruby: `2.6` -> `2.7`; `2.6` just reached EOL * `actions/checkout` -> `v2` -> `v3` * switches `jekyll/builder` to `jekyll/jekyll`, since we don't actually use any of the features in `jekyll/builder` ## on our CI philosophy In working on this, I have a couple of questions: 1. We don't actually use our `Dockerfile` that we provide. Does this make sense? Should we be running CI with this instead? 2. Is there a specific reason that we're using `jekyll/jekyll`? Notably, this isn't an official package, but a community-driven one. Does it match what's used by GitHub Pages? 3. Do we have to use any docker image at all? For example, what if we just rely on the `setup-ruby` action? * one advantage of this is that it's much easier for us to test across multiple OS versions; we just need to have a strategy matrix for OS and do windows, macos, ubuntu, etc. * another advantage is that we can easily test different ruby versions in conjunction with different jekyll versions Eventually, I would like to see us test across: * different Jekyll versions * different OSes * different Ruby versions but perhaps that might be too aggressive. Happy for any feedback on this PR or those questions!
43 lines
996 B
YAML
43 lines
996 B
YAML
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
- 'v**'
|
|
|
|
name: CI
|
|
|
|
jobs:
|
|
jekyll-build:
|
|
name: Build Jekyll site
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
jekyll-version: [3.8.5, latest]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Build the site in the jekyll/jekyll container
|
|
run: |
|
|
docker run --rm \
|
|
--volume="${{ github.workspace }}:/srv/jekyll" \
|
|
jekyll/jekyll:${{ matrix.jekyll-version }} /bin/bash -c "gem install bundler && chmod -R 777 /srv/jekyll && bundle install && bundle exec jekyll build && bundle exec rake search:init"
|
|
|
|
assets:
|
|
name: Test CSS and JS
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
node-version: [16.x]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
- run: npm install
|
|
- run: npm test
|