diff --git a/.github/workflows/build_deploy.yml b/.github/workflows/build_deploy.yml new file mode 100644 index 0000000..32c6a7f --- /dev/null +++ b/.github/workflows/build_deploy.yml @@ -0,0 +1,62 @@ +name: build_deploy + +on: + push: + branches: + - main + # - staging + pull_request: + repository_dispatch: + 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: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.2' + bundler-cache: true + cache-version: 0 # Increment this number if you need to re-download cached gems + - name: Setup Pages + id: pages + uses: actions/configure-pages@v3 + + - name: Build with Jekyll + # Outputs to the './_site' directory by default + run: JEKYLL_LOG_LEVEL=debug bundle exec jekyll build --verbose --trace --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@v2 + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + if: ${{ github.ref == 'refs/heads/main' }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/.github/workflows/links.yml b/.github/workflows/links.yml new file mode 100644 index 0000000..f3b0ac6 --- /dev/null +++ b/.github/workflows/links.yml @@ -0,0 +1,39 @@ +name: links + +on: + push: + branches: + - main + - staging + pull_request: + +jobs: + link_checker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.1' + bundler-cache: true + + - name: Build site + env: + JEKYLL_ENV: production + run: bundle exec jekyll build + + - name: Link Checker + uses: lycheeverse/lychee-action@v2 + with: + args: --verbose --no-progress -- _site/**/*.html + fail: true + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + + # - name: Create Issue From File + # uses: peter-evans/create-issue-from-file@v2 + # with: + # title: Link Checker Report + # content-filepath: ./lychee/out.md + # labels: report, automated issue diff --git a/.gitignore b/.gitignore index 73616ec..eeedc60 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ js/jquery.min.2.1.js js/jquery.min.3.7.js /firebase-debug.log +Gemfile.lock \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..50d536c --- /dev/null +++ b/Gemfile @@ -0,0 +1,36 @@ +source "https://rubygems.org" +# Hello! This is where you manage which Jekyll version is used to run. +# When you want to use a different version, change it below, save the +# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: +# +# bundle exec jekyll serve +# +# This will help ensure the proper Jekyll version is running. +# Happy Jekylling! +gem "jekyll", "~> 4.3.4" +# This is the default theme for new Jekyll sites. You may change this to anything you like. +gem "minima", "~> 2.5" +# If you want to use GitHub Pages, remove the "gem "jekyll"" above and +# uncomment the line below. To upgrade, run `bundle update github-pages`. +# gem "github-pages", group: :jekyll_plugins +# If you have any plugins, put them here! +group :jekyll_plugins do + gem "jekyll-feed", "~> 0.12" + gem "jekyll-asciidoc" +end + +# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem +# and associated library. +platforms :mingw, :x64_mingw, :mswin, :jruby do + gem "tzinfo", ">= 1", "< 3" + gem "tzinfo-data" +end + +# Performance-booster for watching directories on Windows +gem "wdm", "~> 0.1", :platforms => [:mingw, :x64_mingw, :mswin] + +# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem +# do not have a Java counterpart. +gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] +gem 'jekyll-archives' +gem "jekyll-sass-converter", "~> 2.0" \ No newline at end of file diff --git a/_plugins/jekyll-plantuml.rb b/_plugins/jekyll-plantuml.rb index 9ec0c06..19a1624 100644 --- a/_plugins/jekyll-plantuml.rb +++ b/_plugins/jekyll-plantuml.rb @@ -33,10 +33,10 @@ def initialize(tag_name, markup, tokens) def render(context) site = context.registers[:site] name = Digest::MD5.hexdigest(super) - if !File.exists?(File.join(site.dest, "uml/#{name}.svg")) + if !File.exist?(File.join(site.dest, "uml/#{name}.svg")) uml = File.join(site.source, "uml/#{name}.uml") svg = File.join(site.source, "uml/#{name}.svg") - if File.exists?(svg) + if File.exist?(svg) puts "File #{svg} already exists (#{File.size(svg)} bytes)" else FileUtils.mkdir_p(File.dirname(uml))