Deploy Jekyll with GitHub Pages dependencies preinstalled #3
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
# Sample workflow for building and deploying a Jekyll site to GitHub Pages | |
name: Deploy Jekyll with GitHub Pages dependencies preinstalled | |
on: | |
# Runs on pushes targeting the default branch | |
release: | |
types: [published] | |
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: false | |
jobs: | |
# Build job | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- if: github.event.release != null | |
name: set release vars from release event | |
run: | | |
echo "LONG_DATE=${{ github.event.release.published_at }}" >> $GITHUB_ENV | |
echo "LONG_VERSION=${{ github.event.release.tag_name }}" >> $GITHUB_ENV | |
- if: github.event.release == null | |
name: Get previous release | |
id: previousrelease | |
uses: InsonusK/get-latest-release@v1.0.1 | |
with: | |
myToken: ${{ github.token }} | |
exclude_types: draft|prerelease | |
view_top: 1 | |
- if: github.event.release == null | |
name: set release vars from previous release | |
run: | | |
echo "LONG_DATE=${{ steps.previousrelease.outputs.created_at }}" >> $GITHUB_ENV | |
echo "LONG_VERSION=${{ steps.previousrelease.outputs.tag_name }}" >> $GITHUB_ENV | |
- name: Cut release date | |
uses: bhowell2/github-substring-action@1.0.2 | |
id: cut_release_date | |
with: | |
value: ${{ env.LONG_DATE }} | |
length_from_start: 10 | |
- name: Cut release versopm | |
uses: bhowell2/github-substring-action@1.0.2 | |
id: cut_release_version | |
with: | |
value: ${{ env.LONG_VERSION }} | |
index_of_str: "v" | |
- name: Substitute env vars in files | |
uses: chris-peterson/virgo@v1 | |
env: | |
RELEASE_DATE: ${{ steps.cut_release_date.outputs.substring }} | |
RELEASE_VERSION: ${{ steps.cut_release_version.outputs.substring }} | |
with: | |
templates: "specification/metadata.md" | |
- name: Build the spec-publisher project & produce site artifacts | |
run: | | |
cd spec-publisher | |
mvn clean package | |
java -jar target/mets-profile-proc.jar ../profile/E-ARK-CSIP.xml | |
- name: Run Docker job for site publication | |
run: | | |
docker run --rm -v "$PWD:/source" --entrypoint /source/create-site.sh eark4all/spec-pdf-publisher | |
ls -alh ./docs | |
- name: Build the spec-publisher project & produce PDF artifacts | |
run: | | |
git clone --branch feat/pdf-publication https://github.com/DILCISBoard/spec-publisher.git pdf-publisher | |
cd pdf-publisher | |
mvn clean package | |
java -jar target/mets-profile-proc.jar ../profile/E-ARK-CSIP.xml | |
- name: Run Docker job for PDF publication | |
run: | | |
docker run --rm -v "$PWD:/source" --entrypoint /source/create-pdf.sh eark4all/spec-pdf-publisher | |
ls -alh ./docs | |
ls -alh ./docs/pdf | |
- name: Setup Pages | |
uses: actions/configure-pages@v3 | |
- name: Build with Jekyll docker box | |
run: | | |
mkdir _site | |
docker run --rm -v "$PWD"/docs:/usr/src/app -v "$PWD"/_site:/_site starefossen/github-pages jekyll build -d /_site | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v1 | |
# 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 |