From 0e4a7b8cab70a79ebc1361bba355fbaa3086dea2 Mon Sep 17 00:00:00 2001 From: alifeee Date: Fri, 5 Jul 2024 01:06:58 +0100 Subject: [PATCH] Update workflows to be faster + more recent (#65) run `bundle lock --add-platform x86_64-linux` (to allow running on linux) see advice from https://github.com/helaili/jekyll-action ...and https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow --- .github/workflows/build-and-deploy.yml | 37 --------------- .github/workflows/build.yml | 27 ----------- .github/workflows/jekyll-deploy.yml | 64 ++++++++++++++++++++++++++ .github/workflows/jekyll-test.yml | 29 ++++++++++++ Gemfile.lock | 10 +++- 5 files changed, 102 insertions(+), 65 deletions(-) delete mode 100644 .github/workflows/build-and-deploy.yml delete mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/jekyll-deploy.yml create mode 100644 .github/workflows/jekyll-test.yml diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml deleted file mode 100644 index df096a55..00000000 --- a/.github/workflows/build-and-deploy.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: Build and deploy Jekyll site to GitHub Pages - -on: - push: - branches: - - main # or master before October 2020 - -jobs: - jekyll: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - # Use GitHub Actions' cache to shorten build times and decrease load on servers - - uses: actions/cache@v2 - with: - path: vendor/bundle - key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile') }} - restore-keys: | - ${{ runner.os }}-gems- - - # Standard usage - - uses: helaili/jekyll-action@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - - # Specify the Jekyll source location as a parameter - - uses: helaili/jekyll-action@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - jekyll_src: '.' - - # Specify the target branch (optional) - - uses: helaili/jekyll-action@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - target_branch: 'gh-pages' \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 5b3c4b49..00000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Build Jekyll to test compilation - -on: - push: - branches-ignore: - - main # or master before October 2020 - -jobs: - jekyll: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - # Use GitHub Actions' cache to shorten build times and decrease load on servers - - uses: actions/cache@v2 - with: - path: vendor/bundle - key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile') }} - restore-keys: | - ${{ runner.os }}-gems- - - # Standard usage - - uses: helaili/jekyll-action@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - jekyll_src: '.' - build_only: true \ No newline at end of file diff --git a/.github/workflows/jekyll-deploy.yml b/.github/workflows/jekyll-deploy.yml new file mode 100644 index 00000000..9955895f --- /dev/null +++ b/.github/workflows/jekyll-deploy.yml @@ -0,0 +1,64 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# Sample workflow for building and deploying a Jekyll site to GitHub Pages +name: Deploy Jekyll site to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Ruby + uses: ruby/setup-ruby@8575951200e472d5f2d95c625da0c7bec8217c42 # v1.161.0 + with: + ruby-version: '3.1' # Not needed with a .ruby-version file + 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: Setup Pages + id: pages + uses: actions/configure-pages@v5 + - name: Build with Jekyll + # Outputs to the './_site' directory by default + run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" + env: + JEKYLL_ENV: production + - name: Upload artifact + # Automatically uploads an artifact from the './_site' directory by default + uses: actions/upload-pages-artifact@v3 + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/jekyll-test.yml b/.github/workflows/jekyll-test.yml new file mode 100644 index 00000000..7d0b1883 --- /dev/null +++ b/.github/workflows/jekyll-test.yml @@ -0,0 +1,29 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# Sample workflow for building and deploying a Jekyll site to GitHub Pages +name: Test Jekyll build + +on: + # Runs on pushes targeting the default branch + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Ruby + uses: ruby/setup-ruby@8575951200e472d5f2d95c625da0c7bec8217c42 # v1.161.0 + with: + ruby-version: "3.1" # Not needed with a .ruby-version file + 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: Build with Jekyll + # Outputs to the './_site' directory by default + run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" + env: + JEKYLL_ENV: production diff --git a/Gemfile.lock b/Gemfile.lock index d65a4d32..caec01ee 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -74,10 +74,18 @@ GEM ffi (~> 1.9) terminal-table (2.0.0) unicode-display_width (~> 1.1, >= 1.1.1) + thread_safe (0.3.6) + tzinfo (1.2.11) + thread_safe (~> 0.1) + tzinfo-data (1.2024.1) + tzinfo (>= 1.0.0) unicode-display_width (1.8.0) + wdm (0.1.1) webrick (1.7.0) PLATFORMS + x64-mingw-ucrt + x86_64-linux x86_64-linux-musl DEPENDENCIES @@ -94,4 +102,4 @@ DEPENDENCIES webrick BUNDLED WITH - 2.3.13 + 2.4.10