forked from jekyll/jekyll
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cross Version Testing Locally and Faster CI (jekyll#8610)
Merge pull request 8610
- Loading branch information
Adam Bell
authored
Mar 26, 2021
1 parent
c9c9dc7
commit df24131
Showing
5 changed files
with
93 additions
and
65 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,82 +23,40 @@ jobs: | |
- 2.5 | ||
- 2.7 | ||
- 3.0 | ||
- jruby-9.2.14.0 | ||
|
||
- jruby:9.2.14.0 | ||
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: | ||
- uses: actions/checkout@v2 | ||
- name: Download released earth | ||
run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.5.7/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" | ||
- name: Execute tests | ||
run: earthly --build-arg RUBY=${{ matrix.ruby_version }} +test | ||
profile_docs: | ||
if: "!contains(github.event.commits[0].message, '[ci skip]')" | ||
name: 'Code Style Check (Ruby ${{ matrix.ruby_version }})' | ||
name: 'Profile Docs Site (Ruby ${{ matrix.ruby_version }})' | ||
runs-on: 'ubuntu-latest' | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
ruby_version: | ||
- 2.5 | ||
- 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: ruby/setup-ruby@v1 | ||
with: | ||
ruby-version: ${{ matrix.ruby_version }} | ||
bundler-cache: true | ||
- name: Run RuboCop | ||
run: bash script/fmt | ||
|
||
profile_docs: | ||
- uses: actions/checkout@v2 | ||
- name: Download released earth | ||
run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.5.7/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" | ||
- name: Execute tests | ||
run: earthly --build-arg RUBY=${{ matrix.ruby_version }} +profile-docs | ||
style_check: | ||
if: "!contains(github.event.commits[0].message, '[ci skip]')" | ||
name: 'Profile Docs Site (Ruby ${{ matrix.ruby_version }})' | ||
name: 'Style Check (Ruby ${{ matrix.ruby_version }})' | ||
runs-on: 'ubuntu-latest' | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
ruby_version: | ||
- 2.4 # Minimum required Ruby version in gemspec | ||
- 2.5 | ||
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/[email protected] | ||
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 | ||
- uses: actions/checkout@v2 | ||
- name: Download released earth | ||
run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.5.7/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" | ||
- name: Execute tests | ||
run: earthly --build-arg RUBY=${{ matrix.ruby_version }} +style-check |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
FROM alpine | ||
|
||
# Run locally: `earthly +all` to run full CI process | ||
all: | ||
BUILD --build-arg RUBY=3.0 +test | ||
BUILD --build-arg RUBY=2.7 +test | ||
BUILD --build-arg RUBY=2.5 +test | ||
BUILD --build-arg RUBY=jruby:9.2.14.0 +test | ||
BUILD style-check | ||
BUILD profile-docs | ||
|
||
# Run locally: `earthly +test` | ||
# Run with specific version: `earthly --build-arg RUBY=2.5 +test` | ||
test: | ||
FROM +deps | ||
RUN script/test | ||
RUN script/cucumber | ||
RUN script/default-site | ||
|
||
style-check: | ||
FROM +deps | ||
RUN script/fmt | ||
|
||
profile-docs: | ||
FROM +deps | ||
RUN bundle install --jobs 4 | ||
RUN script/profile-docs | ||
RUN script/memprof | ||
|
||
# Install dependencies and copy in source | ||
# used in above steps | ||
deps: | ||
ARG RUBY=3.0 | ||
IF case $RUBY in jruby*) ;; *) false; esac | ||
FROM $RUBY | ||
ENV JRUBY_OPTS="--dev -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-XX:CompileThreshold=10 -J-XX:ReservedCodeCacheSize=128M" | ||
ELSE | ||
FROM ruby:$RUBY | ||
END | ||
WORKDIR /src | ||
RUN apt-get update && apt-get install nodejs dnsutils git make coreutils g++ build-essential -y | ||
RUN gem install bundler | ||
RUN gem install sassc -v '2.4.0' --source 'https://rubygems.org/' | ||
COPY Gemfile . | ||
COPY jekyll.gemspec . | ||
COPY lib/jekyll/version.rb lib/jekyll/version.rb | ||
COPY test test | ||
RUN bundle install --jobs 4 | ||
COPY . . |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters