From 5a78e45c891c30bd309cd4fc8b4ecff75d45a32d Mon Sep 17 00:00:00 2001 From: Jess Bees Date: Wed, 2 Feb 2022 12:39:12 -0500 Subject: [PATCH] Support recording expected output in an action! the `record_expected_output` script now uses the `act` utility (https://github.com/nektos/act) to run this repo's action in a container as github actions would. You can now pass one argument to that, `local`, to go back to running `github-pages` on your local ruby install. (I removed the `.ruby-version` file since we don't *need* to record using the local env anymore, so make sure that you're on Ruby 2.7.4) This eliminates the inconsistency between recorded output and generated output on actions, so we don't need to ignore any lines in `diff` anymore. --- .github/workflows/record.yml | 68 +++++++++++++++++++ .ruby-version | 1 - bin/compare_expected_output | 5 +- bin/record_expected_output | 18 +++-- .../02/13/the-future-is-looking-bright.html | 2 +- .../02/13/the-future-is-looking-bright.html | 2 +- .../_expected/2022/03/01/we-live-in-hell.html | 2 +- .../jekyll-include-cache/_expected/index.html | 2 +- test_projects/simple/_expected/index.html | 2 +- test_projects/themes/_expected/index.html | 2 +- 10 files changed, 86 insertions(+), 18 deletions(-) create mode 100644 .github/workflows/record.yml delete mode 100644 .ruby-version diff --git a/.github/workflows/record.yml b/.github/workflows/record.yml new file mode 100644 index 0000000..dd89303 --- /dev/null +++ b/.github/workflows/record.yml @@ -0,0 +1,68 @@ +name: Record Expected + +on: + workflow_dispatch: + +jobs: + record-expected-output: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Build test project 'simple' + uses: ./ + with: + source: test_projects/simple + destination: test_projects/simple/_expected + build_revision: JEKYLL_BUILD_REVISION + + - name: Build test project 'readme' + uses: ./ + with: + source: test_projects/readme + destination: test_projects/readme/_expected + build_revision: JEKYLL_BUILD_REVISION + + - name: Build test project 'octicons' + uses: ./ + with: + source: test_projects/octicons + destination: test_projects/octicons/_expected + build_revision: JEKYLL_BUILD_REVISION + + - name: Build test project 'mojombo' + uses: ./ + with: + source: test_projects/mojombo + destination: test_projects/mojombo/_expected + build_revision: JEKYLL_BUILD_REVISION + + - name: Build test project 'themes' + uses: ./ + with: + source: test_projects/themes + destination: test_projects/themes/_expected + build_revision: JEKYLL_BUILD_REVISION + + - name: Build test project 'jekyll-include-cache' + uses: ./ + with: + source: test_projects/jekyll-include-cache + destination: test_projects/jekyll-include-cache/_expected + build_revision: JEKYLL_BUILD_REVISION + + - name: Build test project 'future-false' + uses: ./ + with: + source: test_projects/future-false + destination: test_projects/future-false/_expected + build_revision: JEKYLL_BUILD_REVISION + + - name: Build test project 'future-true' + uses: ./ + with: + source: test_projects/future-true + destination: test_projects/future-true/_expected + build_revision: JEKYLL_BUILD_REVISION + diff --git a/.ruby-version b/.ruby-version deleted file mode 100644 index a4dd9db..0000000 --- a/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -2.7.4 diff --git a/bin/compare_expected_output b/bin/compare_expected_output index c2e5328..6616142 100755 --- a/bin/compare_expected_output +++ b/bin/compare_expected_output @@ -14,10 +14,7 @@ differences = [] expected_files.each do |expected_file| if actual_files.include?(expected_file) - # FIXME: if we are able to move the expected output recording job onto actions, - # then we will be able to remove the -I param below which ignores the SEO json - # tag, because the recording will be consistent with the test output. - diff = `diff -I '"@context":"https://schema.org"' #{Shellwords.escape(File.join("_expected", expected_file))} #{Shellwords.escape(File.join("_site", expected_file))}` + diff = `diff #{Shellwords.escape(File.join("_expected", expected_file))} #{Shellwords.escape(File.join("_site", expected_file))}` if !$?.success? differences << "Expected output of #{expected_file} differs:\n#{diff}" end diff --git a/bin/record_expected_output b/bin/record_expected_output index a0dc711..d90ab1f 100755 --- a/bin/record_expected_output +++ b/bin/record_expected_output @@ -1,10 +1,14 @@ #! /usr/bin/env sh -export JEKYLL_ENV=production -export PAGES_REPO_NWO=actions/jekyll-build-pages -export JEKYLL_BUILD_REVISION=JEKYLL_BUILD_REVISION +if [ "local" = "$1" ]; then + export JEKYLL_ENV=production + export PAGES_REPO_NWO=actions/jekyll-build-pages + export JEKYLL_BUILD_REVISION=JEKYLL_BUILD_REVISION -for dir in $(ls test_projects) -do - bundle exec github-pages build --verbose -s test_projects/$dir -d test_projects/$dir/_expected -done + for dir in $(ls test_projects) + do + bundle exec github-pages build --verbose -s test_projects/$dir -d test_projects/$dir/_expected + done +else + act -b -s GITHUB_TOKEN -j record-expected-output +fi diff --git a/test_projects/future-false/_expected/2020/02/13/the-future-is-looking-bright.html b/test_projects/future-false/_expected/2020/02/13/the-future-is-looking-bright.html index 0cae19a..a8123c9 100644 --- a/test_projects/future-false/_expected/2020/02/13/the-future-is-looking-bright.html +++ b/test_projects/future-false/_expected/2020/02/13/the-future-is-looking-bright.html @@ -20,7 +20,7 @@ +{"mainEntityOfPage":{"@type":"WebPage","@id":"https://github.com/pages/actions/jekyll-build-pages/2020/02/13/the-future-is-looking-bright.html"},"description":"Everything’s coming up Milhouse.","url":"https://github.com/pages/actions/jekyll-build-pages/2020/02/13/the-future-is-looking-bright.html","@type":"BlogPosting","headline":"The Future is Looking Bright!","dateModified":"2020-02-13T00:00:00-05:00","datePublished":"2020-02-13T00:00:00-05:00","@context":"https://schema.org"} diff --git a/test_projects/future-true/_expected/2020/02/13/the-future-is-looking-bright.html b/test_projects/future-true/_expected/2020/02/13/the-future-is-looking-bright.html index 0cae19a..a8123c9 100644 --- a/test_projects/future-true/_expected/2020/02/13/the-future-is-looking-bright.html +++ b/test_projects/future-true/_expected/2020/02/13/the-future-is-looking-bright.html @@ -20,7 +20,7 @@ +{"mainEntityOfPage":{"@type":"WebPage","@id":"https://github.com/pages/actions/jekyll-build-pages/2020/02/13/the-future-is-looking-bright.html"},"description":"Everything’s coming up Milhouse.","url":"https://github.com/pages/actions/jekyll-build-pages/2020/02/13/the-future-is-looking-bright.html","@type":"BlogPosting","headline":"The Future is Looking Bright!","dateModified":"2020-02-13T00:00:00-05:00","datePublished":"2020-02-13T00:00:00-05:00","@context":"https://schema.org"} diff --git a/test_projects/future-true/_expected/2022/03/01/we-live-in-hell.html b/test_projects/future-true/_expected/2022/03/01/we-live-in-hell.html index 0a2ebfb..e4de077 100644 --- a/test_projects/future-true/_expected/2022/03/01/we-live-in-hell.html +++ b/test_projects/future-true/_expected/2022/03/01/we-live-in-hell.html @@ -20,7 +20,7 @@ +{"mainEntityOfPage":{"@type":"WebPage","@id":"https://github.com/pages/actions/jekyll-build-pages/2022/03/01/we-live-in-hell.html"},"description":"And it’s not even the cool hell that [redacted] are afraid of. 😭","url":"https://github.com/pages/actions/jekyll-build-pages/2022/03/01/we-live-in-hell.html","@type":"BlogPosting","headline":"We Live In Hell","dateModified":"2022-03-01T00:00:00-05:00","datePublished":"2022-03-01T00:00:00-05:00","@context":"https://schema.org"} diff --git a/test_projects/jekyll-include-cache/_expected/index.html b/test_projects/jekyll-include-cache/_expected/index.html index 6c241dc..a422222 100644 --- a/test_projects/jekyll-include-cache/_expected/index.html +++ b/test_projects/jekyll-include-cache/_expected/index.html @@ -16,7 +16,7 @@ +{"headline":"jekyll-build-pages","url":"https://github.com/pages/actions/jekyll-build-pages/","@type":"WebSite","name":"jekyll-build-pages","@context":"https://schema.org"} diff --git a/test_projects/simple/_expected/index.html b/test_projects/simple/_expected/index.html index 4b5552e..47341be 100644 --- a/test_projects/simple/_expected/index.html +++ b/test_projects/simple/_expected/index.html @@ -16,7 +16,7 @@ +{"url":"https://github.com/pages/actions/jekyll-build-pages/","@type":"WebSite","headline":"Jekyll Actions Demo","name":"Jekyll Actions Demo","@context":"https://schema.org"} diff --git a/test_projects/themes/_expected/index.html b/test_projects/themes/_expected/index.html index 3523e1f..8b23f92 100644 --- a/test_projects/themes/_expected/index.html +++ b/test_projects/themes/_expected/index.html @@ -16,7 +16,7 @@ +{"url":"https://github.com/pages/actions/jekyll-build-pages/","@type":"WebSite","headline":"themes","name":"themes","@context":"https://schema.org"}