Skip to content

GitHub Pages

GitHub Pages #355

Workflow file for this run

name: GitHub Pages
on:
push:
branches: [ main]
pull_request:
branches: [ main ]
schedule:
- cron: "23 9 */14 * *"
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
# Allow one concurrent deployment, per branch
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true
jobs:
get_impls:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Set up JDK
uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018 # v4.2.2
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
with:
gradle-home-cache-cleanup: true
- name: Extract implementation info
run: ./gradlew --quiet extractImplementations
- name: Add results to step summary
run: cat docs/_includes/implementations.json >> $GITHUB_STEP_SUMMARY
- name: Upload Implementations
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: implementations
path: docs/_includes/*
run_functional:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Set up JDK
uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018 # v4.2.2
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
with:
gradle-home-cache-cleanup: true
- name: Run functional tests
run: ./gradlew --quiet runFunctionalTests
- name: Add results to step summary
run: |
echo "# Overall comparison" >> $GITHUB_STEP_SUMMARY
cat docs/_includes/functional-summary.md >> $GITHUB_STEP_SUMMARY
echo "# Specific Draft & Implementation results" >> $GITHUB_STEP_SUMMARY
cat docs/_includes/per-draft.md >> $GITHUB_STEP_SUMMARY
- name: Upload Implementations
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: functional
path: docs/_includes/*
run_validate_benchmark:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Set up JDK
uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018 # v4.2.2
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
with:
gradle-home-cache-cleanup: true
- if: github.event_name == 'pull_request'
name: Run performance smoke benchmarks
run: ./gradlew --quiet runValidateBenchmarkSmokeTest
- if: github.event_name != 'pull_request'
name: Run performance benchmarks
run: ./gradlew --quiet runValidateBenchmark
- name: Add results to step summary
run: |
echo "# Json Validator Benchmark Results" >> $GITHUB_STEP_SUMMARY
cat docs/_includes/JsonValidateBenchmark.md >> $GITHUB_STEP_SUMMARY
- name: Upload Implementations
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: validateBenchmark
path: docs/_includes/*
run_serde_benchmark:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Set up JDK
uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018 # v4.2.2
with:
java-version: '17'
distribution: 'adopt'
- name: Setup Gradle
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3.5.0
with:
gradle-home-cache-cleanup: true
- if: github.event_name == 'pull_request'
name: Run performance smoke benchmarks
run: ./gradlew --quiet runSerdeBenchmarkSmokeTest
- if: github.event_name != 'pull_request'
name: Run performance benchmarks
run: ./gradlew --quiet runSerdeBenchmark
- name: Add results to step summary
run: |
echo "# Json Serde Benchmark Results" >> $GITHUB_STEP_SUMMARY
cat docs/_includes/JsonSerdeBenchmark.md >> $GITHUB_STEP_SUMMARY
- name: Upload Implementations
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: serdeBenchmark
path: docs/_includes/*
build_pages:
needs: [get_impls, run_functional, run_validate_benchmark, run_serde_benchmark]
runs-on: ubuntu-latest
env:
BUNDLE_GEMFILE: ${{ github.workspace }}/docs/Gemfile
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3.4.0
with:
fetch-depth: 0 # need full history to get page last modified times
- name: Setup Ruby
uses: ruby/setup-ruby@a6e6f86333f0a2523ece813039b8b4be04560854 # v1.190.0
with:
ruby-version: '3.1'
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@983d7736d9b0ae728b81ab479565c72886d7745b # v5.0.0
- name: Download implementations
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: implementations
path: docs/_includes
- name: Download functional results
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: functional
path: docs/_includes
- name: Download validate benchmark results
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: validateBenchmark
path: docs/_includes
- name: Download serde benchmark results
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: serdeBenchmark
path: docs/_includes
- name: Build with Jekyll
run: (cd docs && bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}")
env:
JEKYLL_ENV: production
- name: Upload artifact
if: github.event_name != 'pull_request'
# Automatically uploads an artifact from the './_site' directory by default
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1
with:
path: "docs/_site/"
# Deployment job
deploy_pages:
if: github.event_name != 'pull_request'
needs: build_pages
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5
- name: Ping Google Search
run: curl "https://www.google.com/ping?sitemap=https://www.creekservice.org/${{ github.event.repository.name }}/sitemap.xml"