Skip to content
Snippets Groups Projects
  • Matt Wang's avatar
    2049ebc3
    consolidate CI files, updates Ruby and Node versions (#820) · 2049ebc3
    Matt Wang authored
    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!
    consolidate CI files, updates Ruby and Node versions (#820)
    Matt Wang authored
    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!