diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index 0be2958..b2ca55f 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -1,45 +1,108 @@ -on: +on: push: branches: - - master + - master + pull_request: + branches: + - master -name: Master branch CI +name: CI jobs: + jekyll-build: + name: Build (jekyll gem) + strategy: + fail-fast: false + matrix: + jekyll-version: [3.9, 4.3] + os: [ ubuntu-latest, macos-latest, windows-latest ] + ruby-version: ["3.0", "3.1", "3.2"] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - name: Setup Ruby ${{ matrix.ruby-version }} + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby-version }} + bundler-cache: false + - name: Bundle Install (Jekyll ${{ matrix.jekyll-version }}) + run: bundle install + env: + BUNDLE_GEMFILE: fixtures/Gemfile-jekyll-${{ matrix.jekyll-version }} + - name: Init Search + run: bundle exec rake search:init + env: + BUNDLE_GEMFILE: fixtures/Gemfile-jekyll-${{ matrix.jekyll-version }} + - name: Build Site + run: bundle exec jekyll build + env: + BUNDLE_GEMFILE: fixtures/Gemfile-jekyll-${{ matrix.jekyll-version }} - jekyll-latest: - name: Build Jekyll site (latest) + github-pages-build: + name: Build (github-pages gem) runs-on: ubuntu-latest steps: + - uses: actions/checkout@v4 + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.2" + bundler-cache: false + - name: Bundle Install + run: bundle install + env: + BUNDLE_GEMFILE: fixtures/Gemfile-github-pages + - name: Build Site + run: bundle exec jekyll build + env: + BUNDLE_GEMFILE: fixtures/Gemfile-github-pages - - uses: actions/checkout@master - - - name: Build the site in the jekyll/builder container - run: | - docker run --rm \ - --volume="${{ github.workspace }}:/srv/jekyll" \ - jekyll/builder:latest /bin/bash -c "gem install bundler && git config --global --add safe.directory /srv/jekyll && chmod -R 777 /srv/jekyll && jekyll build && bundle exec just-the-docs rake search:init" - jekyll-3-8-5: - name: Build Jekyll site (v3.8.5) + validate: + name: Validate HTML + strategy: + fail-fast: false + matrix: + ruby-version: ["3.2"] runs-on: ubuntu-latest - steps: - - uses: actions/checkout@master + steps: + - uses: actions/checkout@v4 + - name: Setup Ruby ${{ matrix.ruby-version }} + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby-version }} + bundler-cache: true # runs 'bundle install' and caches installed gems automatically + cache-version: 0 # Increment this number if you need to re-download cached gems + - name: Cache HTMLProofer + id: cache-htmlproofer + uses: actions/cache@v3 + with: + path: tmp/.htmlproofer + key: ${{ runner.os }}-htmlproofer + - name: Build Site + run: bundle exec jekyll build + - name: Test with Nu Validator + uses: Cyb3r-Jak3/html5validator-action@2a593a9f2c10593cbac84791a6fc4c47e9a106c8 + with: + config: fixtures/html5validator-config.yml + - name: Test with html-proofer + run: bundle exec htmlproofer _site --ignore-urls "/github.com/,/web.archive.org/" + env: + NOKOGIRI_USE_SYSTEM_LIBRARIES: true - - name: Build the site in the jekyll/builder container - run: | - docker run --rm \ - --volume="${{ github.workspace }}:/srv/jekyll" \ - jekyll/builder:3.8.5 /bin/bash -c "gem install bundler && chmod -R 777 /srv/jekyll && jekyll build && bundle exec just-the-docs rake search:init" assets: - name: Format and test CSS and JS + name: Test CSS and JS runs-on: ubuntu-latest + strategy: + matrix: + node-version: [18.x] + steps: - - uses: actions/checkout@v2 - - name: Use Node.js 12.x - uses: actions/setup-node@v1 + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 with: - node-version: '12.x' + node-version: ${{ matrix.node-version }} - run: npm install - - run: npm test + - run: npm test \ No newline at end of file