on: push: branches: - main pull_request: branches: - main 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.1", "3.2", "3.3", "3.4"] 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 }} 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.4" 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 validate: name: Validate HTML strategy: fail-fast: false matrix: ruby-version: ["3.4"] runs-on: ubuntu-latest 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/,/flickr.com/" env: NOKOGIRI_USE_SYSTEM_LIBRARIES: true assets: name: Test CSS and JS runs-on: ubuntu-latest strategy: matrix: node-version: [22.x] steps: - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - run: npm install - run: npm test