Generate webpage content #49
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Generate webpage content | |
on: | |
workflow_dispatch: | |
push: | |
branches: ["main"] | |
paths: | |
- '*.json' | |
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | |
permissions: | |
contents: write | |
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: false | |
jobs: | |
webpage: | |
runs-on: ubuntu-latest | |
outputs: | |
modified: ${{ steps.commit.outputs.modified }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- name: Install groovy | |
run: sudo apt install groovy | |
- name: Generate website | |
run: | | |
groovy update.groovy > docs/gene_database/readme.md | |
cp *.json docs/. | |
- name: Generate BridgeDb Webservice config files | |
run: | | |
groovy makeGDBconfig.groovy | |
- name: Commit report | |
id: commit | |
run: | | |
git config --global user.name 'GitHub Action' | |
git config --global user.email 'action@github.com' | |
git add docs | |
if git diff --exit-code --staged; then | |
echo "No changes" | |
echo "modified=" >> $GITHUB_OUTPUT | |
else | |
git commit -m 'Converted JSON content into markdown ' | |
git push | |
echo "modified=$(git diff --name-only --diff-filter=AM ${{ github.event.before }} -- docs/*.json | xargs)" >> $GITHUB_OUTPUT | |
fi | |
# Build Jeckyll Website job | |
build: | |
runs-on: ubuntu-latest | |
needs: webpage | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: main | |
- name: Setup Pages | |
uses: actions/configure-pages@v5 | |
- name: Build with Jekyll | |
uses: actions/jekyll-build-pages@v1 | |
with: | |
source: ./docs | |
destination: ./_site | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v3 | |
# Jeckyll Website 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@v2 | |
# Pinging jobs | |
pingDocker: | |
runs-on: ubuntu-latest | |
needs: [webpage, deploy] | |
if: ${{needs.webpage.outputs.modified}} | |
steps: | |
- name: Trigger docker release | |
uses: peter-evans/repository-dispatch@v3 | |
with: | |
token: ${{ secrets.pat_external_workflow }} | |
repository: bridgedb/docker | |
event-type: update-event | |
pingWikiPathways: | |
runs-on: ubuntu-latest | |
needs: [webpage, deploy] | |
if: ${{needs.webpage.outputs.modified}} | |
steps: | |
- name: Trigger WikiPathways BridgeDb Cache Reset | |
uses: peter-evans/repository-dispatch@v3 | |
with: | |
token: ${{ secrets.PAT_WORKFLOW_WIKIPATHWAYS_BRIDGEDB_CACHE }} | |
repository: wikipathways/wikipathways-database | |
event-type: bridgedb-data-update-event | |
# see https://github.com/wikipathways/wikipathways-database/blob/main/.github/workflows/scheduled_bridge_cache.yml#L4-L5 |