diff --git a/.github/workflows/ci.disabled_workflow b/.github/workflows/ci.disabled_workflow deleted file mode 100644 index 068ad73e5d0..00000000000 --- a/.github/workflows/ci.disabled_workflow +++ /dev/null @@ -1,53 +0,0 @@ -name: Continuous Integration - -on: - push: - branches: - - master - - /.*-stable/ - pull_request: - branches: - - master - - /.*-stable/ - -jobs: - ci: - if: "!contains(github.event.commits[0].message, '[ci skip]')" - name: 'SUITE: ${{ matrix.test_suite }} / OS: ${{ matrix.os }}' - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - test_suite: - - test - - default-site - os: - - ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - fetch-depth: 5 - - name: Ruby - uses: actions/setup-ruby@v1 - with: - ruby-version: 2.6.x - - name: Cache dependencies - uses: actions/cache@v1 - with: - path: vendor/bundle - key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} - restore-keys: | - ${{ runner.os }}-gems- - - name: 'Update Rubygems' - run: 'gem update --system --no-document' - - name: 'Update Bundler' - run: 'gem update bundler --no-document' - - name: Set up bundle - run: | - bundle config path vendor/bundle - bundle install --jobs 4 --retry 3 - - name: Run Test Suite - run: bash script/cibuild - env: - CI: true - TEST_SUITE: ${{ matrix.test_suite }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000000..bd6c3375022 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,103 @@ +name: Continuous Integration + +on: + push: + branches: + - master + - /.*-stable/ + pull_request: + branches: + - master + - /.*-stable/ + +jobs: + ci: + if: "!contains(github.event.commits[0].message, '[ci skip]')" + name: 'Ruby ${{ matrix.ruby_version }}' + runs-on: 'ubuntu-latest' + + strategy: + fail-fast: false + matrix: + ruby_version: + - 2.5 + - 2.7 + - jruby-9.2.11.1 + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 5 + - name: "Set up Ruby ${{ matrix.ruby_version }}" + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby_version }} + bundler-cache: true + - name: Run Unit Tests + run: bash script/test + env: + CI: true + - name: Run Cucumber Features + run: bash script/cucumber + env: + CI: true + - name: Sanity Check + run: bash script/default-site + + style_check: + if: "!contains(github.event.commits[0].message, '[ci skip]')" + name: 'Code Style Check (Ruby ${{ matrix.ruby_version }})' + runs-on: 'ubuntu-latest' + strategy: + fail-fast: false + matrix: + ruby_version: + - 2.5 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 5 + - name: "Set up Ruby ${{ matrix.ruby_version }}" + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby_version }} + bundler-cache: true + - name: Run RuboCop + run: bash script/fmt + + profile_docs: + if: "!contains(github.event.commits[0].message, '[ci skip]')" + name: 'Profile Docs Site (Ruby ${{ matrix.ruby_version }})' + runs-on: 'ubuntu-latest' + strategy: + fail-fast: false + matrix: + ruby_version: + - 2.4 # Minimum required Ruby version in gemspec + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 5 + - name: "Set up Ruby ${{ matrix.ruby_version }}" + uses: actions/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby_version }} + - name: Cache dependencies + uses: actions/cache@v1 + with: + path: vendor/bundle + key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} + restore-keys: | + ${{ runner.os }}-gems- + - name: 'Update Rubygems and Bundler' + run: | + gem update --system --no-document + gem update bundler --no-document + - name: Set up bundle + run: | + bundle config path vendor/bundle + bundle install --jobs 4 --retry 3 + - name: Build Docs site with --profile + run: bash script/profile-docs + - name: Profile memory usage of building Docs site + run: bash script/memprof diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 198698649af..00000000000 --- a/.travis.yml +++ /dev/null @@ -1,58 +0,0 @@ -bundler_args: --without benchmark:development -script: script/cibuild -cache: bundler -language: ruby - -rvm: - - &ruby1 2.7.1 - - &ruby2 2.5.8 - - &jruby jruby-9.2.11.1 - -matrix: - include: - - rvm: *ruby1 - env: TEST_SUITE=fmt - name: "🤖️ Code Format" - - rvm: *ruby1 - env: TEST_SUITE=default-site - name: "🏠️ Default Site" - - rvm: *ruby1 - env: TEST_SUITE=profile-docs - name: "Profile Docs" - - rvm: *ruby2 - env: TEST_SUITE=memprof - name: "Profile Memory Allocation" - exclude: - - rvm: *jruby - env: TEST_SUITE=cucumber - -env: - matrix: - - TEST_SUITE=test - - TEST_SUITE=cucumber -branches: - only: - - master - - themes - - /.*-stable/ - -before_script: - - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter - - chmod +x ./cc-test-reporter - - ./cc-test-reporter before-build - -after_script: - - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT - -notifications: - email: false - slack: - secure: "\ - dNdKk6nahNURIUbO3ULhA09/vTEQjK0fNbgjVjeYPEvROHgQBP1cIP3AJy8aWs8rl5Yyow4Y\ - GEilNRzKPz18AsFptVXofpwyqcBxaCfmHP809NX5PHBaadydveLm+TNVao2XeLXSWu+HUNAY\ - O1AanCUbJSEyJTju347xCBGzESU=\ - " - -before_install: - - gem update --system --no-document - - gem install bundler --no-document diff --git a/README.markdown b/README.markdown index d0f0c0c6be9..cde6558052d 100644 --- a/README.markdown +++ b/README.markdown @@ -1,19 +1,15 @@ # [Jekyll](https://jekyllrb.com/) [![Gem Version](https://img.shields.io/gem/v/jekyll.svg)][ruby-gems] -[![Linux Build Status](https://img.shields.io/travis/jekyll/jekyll/master.svg?label=Linux%20build)][travis] +[![Linux Build Status](https://github.com/jekyll/jekyll/workflows/Continuous%20Integration/badge.svg)][ci-workflow] [![Windows Build status](https://img.shields.io/appveyor/ci/jekyll/jekyll/master.svg?label=Windows%20build)][appveyor] -[![Maintainability](https://api.codeclimate.com/v1/badges/8ba0cb5b17bb9848e128/maintainability)][codeclimate] -[![Test Coverage](https://api.codeclimate.com/v1/badges/8ba0cb5b17bb9848e128/test_coverage)][coverage] [![Security](https://hakiri.io/github/jekyll/jekyll/master.svg)][hakiri] [![Backers on Open Collective](https://opencollective.com/jekyll/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/jekyll/sponsors/badge.svg)](#sponsors) [ruby-gems]: https://rubygems.org/gems/jekyll -[codeclimate]: https://codeclimate.com/github/jekyll/jekyll -[coverage]: https://codeclimate.com/github/jekyll/jekyll/coverage [hakiri]: https://hakiri.io/github/jekyll/jekyll/master -[travis]: https://travis-ci.org/jekyll/jekyll +[ci-workflow]: https://github.com/jekyll/jekyll/actions?query=workflow%3A%22Continuous+Integration%22+branch%3Amaster [appveyor]: https://ci.appveyor.com/project/jekyll/jekyll/branch/master Jekyll is a simple, blog-aware, static site generator perfect for personal, project, or organization sites. Think of it like a file-based CMS, without all the complexity. Jekyll takes your content, renders Markdown and Liquid templates, and spits out a complete, static website ready to be served by Apache, Nginx or another web server. Jekyll is the engine behind [GitHub Pages](https://pages.github.com), which you can use to host sites right from your GitHub repositories.