From 0b7d9a3030bee5bbd43c3aa0c84f6cf5624153de Mon Sep 17 00:00:00 2001 From: "Yuhao Zhu, PhD, FRM" Date: Sun, 10 Mar 2024 17:48:16 +0100 Subject: [PATCH] Update .github --- .github/FUNDING.yml | 2 + .github/ISSUE_TEMPLATE/bug_report.md | 38 ++++++ .github/ISSUE_TEMPLATE/config.yml | 5 + .github/ISSUE_TEMPLATE/feature_request.md | 20 ++++ .github/dependabot.yml | 14 +++ .github/workflows/ci.yml | 108 ++++++++++++++++++ .github/workflows/{pages.yml => deploy.yml} | 10 +- .github/workflows/publish-gem.yml | 40 +++++++ .../update_jekyll-anchor-heading.yml | 43 +++++++ 9 files changed, 275 insertions(+), 5 deletions(-) create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ci.yml rename .github/workflows/{pages.yml => deploy.yml} (87%) create mode 100644 .github/workflows/publish-gem.yml create mode 100644 .github/workflows/update_jekyll-anchor-heading.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..d88454b1 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,2 @@ +github: just-the-docs +open_collective: just-the-docs diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..f3d5c415 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..fd77ad0a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Ask a question + url: https://github.com/just-the-docs/just-the-docs/discussions + about: Ask questions and discuss with other community members diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..11fc491e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: enhancement +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..c0cd7185 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,14 @@ +version: 2 +updates: +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + time: "10:00" + open-pull-requests-limit: 10 +- package-ecosystem: bundler + directory: "/" + schedule: + interval: daily + time: "10:00" + open-pull-requests-limit: 10 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..f403eadc --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,108 @@ +on: + push: + branches: + - main + pull_request: + branches: + - main + +name: CI + +jobs: + jekyll-build: + name: Build (jekyll gem) + strategy: + fail-fast: false + matrix: + jekyll-version: [3.9, 4.3] + os: [ ubuntu-latest, macos-latest, windows-latest ] + ruby-version: ["3.0", "3.1", "3.2"] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - name: Setup Ruby ${{ matrix.ruby-version }} + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby-version }} + bundler-cache: false + - name: Bundle Install (Jekyll ${{ matrix.jekyll-version }}) + run: bundle install + env: + BUNDLE_GEMFILE: fixtures/Gemfile-jekyll-${{ matrix.jekyll-version }} + - name: Init Search + run: bundle exec rake search:init + env: + BUNDLE_GEMFILE: fixtures/Gemfile-jekyll-${{ matrix.jekyll-version }} + - name: Build Site + run: bundle exec jekyll build + env: + BUNDLE_GEMFILE: fixtures/Gemfile-jekyll-${{ matrix.jekyll-version }} + + github-pages-build: + name: Build (github-pages gem) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.2" + bundler-cache: false + - name: Bundle Install + run: bundle install + env: + BUNDLE_GEMFILE: fixtures/Gemfile-github-pages + - name: Build Site + run: bundle exec jekyll build + env: + BUNDLE_GEMFILE: fixtures/Gemfile-github-pages + + validate: + name: Validate HTML + strategy: + fail-fast: false + matrix: + ruby-version: ["3.2"] + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Setup Ruby ${{ matrix.ruby-version }} + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby-version }} + 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: Cache HTMLProofer + id: cache-htmlproofer + uses: actions/cache@v3 + with: + path: tmp/.htmlproofer + key: ${{ runner.os }}-htmlproofer + - name: Build Site + run: bundle exec jekyll build + - name: Test with Nu Validator + uses: Cyb3r-Jak3/html5validator-action@2a593a9f2c10593cbac84791a6fc4c47e9a106c8 + with: + config: fixtures/html5validator-config.yml + - name: Test with html-proofer + run: bundle exec htmlproofer _site --ignore-urls "/github.com/,/web.archive.org/" + env: + NOKOGIRI_USE_SYSTEM_LIBRARIES: true + + assets: + name: Test CSS and JS + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [18.x] + + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + - run: npm install + - run: npm test diff --git a/.github/workflows/pages.yml b/.github/workflows/deploy.yml similarity index 87% rename from .github/workflows/pages.yml rename to .github/workflows/deploy.yml index bfb8de39..cc7a8fbe 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/deploy.yml @@ -30,16 +30,16 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: '3.1' # Not needed with a .ruby-version file + ruby-version: "3.2" 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@v2 + uses: actions/configure-pages@v3 - name: Build with Jekyll # Outputs to the './_site' directory by default run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" @@ -47,7 +47,7 @@ jobs: JEKYLL_ENV: production - name: Upload artifact # Automatically uploads an artifact from the './_site' directory by default - uses: actions/upload-pages-artifact@v1 + uses: actions/upload-pages-artifact@v2 # Deployment job deploy: @@ -59,4 +59,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v1 + uses: actions/deploy-pages@v2 diff --git a/.github/workflows/publish-gem.yml b/.github/workflows/publish-gem.yml new file mode 100644 index 00000000..338f61de --- /dev/null +++ b/.github/workflows/publish-gem.yml @@ -0,0 +1,40 @@ +name: Publish Ruby Gem + +on: + workflow_dispatch + +jobs: + build: + name: Publish + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Setup Ruby 3.2 + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.2" + + - name: Publish to GPR + run: | + mkdir -p $HOME/.gem + touch $HOME/.gem/credentials + chmod 0600 $HOME/.gem/credentials + printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials + gem build *.gemspec + gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem + env: + GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}" + OWNER: ${{ github.repository_owner }} + + # Disabled as this does not handle 2FA + # - name: Publish to RubyGems + # run: | + # mkdir -p $HOME/.gem + # touch $HOME/.gem/credentials + # chmod 0600 $HOME/.gem/credentials + # printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials + # gem build *.gemspec + # gem push *.gem + # env: + # GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}" diff --git a/.github/workflows/update_jekyll-anchor-heading.yml b/.github/workflows/update_jekyll-anchor-heading.yml new file mode 100644 index 00000000..4206ee22 --- /dev/null +++ b/.github/workflows/update_jekyll-anchor-heading.yml @@ -0,0 +1,43 @@ +name: Update Vendor plugin - jekyll-anchor-headings +on: + # schedule: + # # once per week + # - cron: "0 15 * * 0" + workflow_dispatch: +jobs: + update-deps: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Get latest release information + id: latest-release + uses: pozetroninc/github-action-get-latest-release@master + with: + owner: allejo + repo: jekyll-anchor-headings + excludes: prerelease, draft + + - name: Update jekyll-anchor-headings + id: update + uses: suisei-cn/actions-download-file@v1.3.0 + with: + url: "https://github.com/allejo/jekyll-anchor-headings/releases/download/${{ steps.latest-release.outputs.release }}/anchor_headings.html" + target: _includes/vendor/ + + - name: Create PR + uses: peter-evans/create-pull-request@v4 + with: + commit-message: "chore[dependency]: Update `jekyll-anchor-headings` to `${{ steps.latest-release.outputs.release }}`" + title: "auto: Update `jekyll-anchor-headings` to `${{ steps.latest-release.outputs.release }}`" + body: | + Update `jekyll-anchor-headings` to `${{ steps.latest-release.outputs.release }}` + This is an automated pull request. + branch: update/vendor/jekyll-anchor-headings + delete-branch: true + labels: | + kind/update + area/dependency + add-paths: | + _includes/vendor/anchor_headings.html + token: ${{ secrets.GITHUB_TOKEN }}