Run on changes of github action file (e.g. main.yml) #15 #54
Workflow file for this run
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: Build /public and deploy to gh-pages with docker container | |
on: | |
push: | |
workflow_dispatch: | |
inputs: | |
logLevel: | |
description: 'Log level' | |
required: true | |
default: 'warning' | |
tags: | |
description: 'Test scenario tags' | |
jobs: | |
changedfiles: | |
runs-on: ubuntu-latest | |
outputs: | |
ttl: ${{ steps.set-matrix.outputs.ttl }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 2 | |
- name: Get changed files | |
id: changed-files | |
uses: tj-actions/changed-files@v42 | |
with: | |
files: | | |
**/*.ttl | |
**/*.yml | |
json: "true" | |
- name: Set matrix | |
id: set-matrix | |
run: echo "ttl=$(echo ${{ steps.changed-files.outputs.all_changed_files }} | grep '\.ttl$')" >> $GITHUB_OUTPUT | |
validate: | |
runs-on: ubuntu-latest | |
needs: changedfiles | |
# only run there are changed files | |
if: ${{needs.changedfiles.outputs.ttl != '[]'}} | |
strategy: | |
fail-fast: false # other validation jobs should continue checking even if one file is invalid | |
matrix: | |
file: ${{ fromJson(needs.changedfiles.outputs.ttl) }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: echo changed files | |
run: echo "${{ matrix.file }}" | |
- name: get shape | |
run: curl https://raw.githubusercontent.com/skohub-io/shapes/main/skohub.shacl.ttl --output skohub.shacl.ttl | |
- name: make scripts directory | |
run: mkdir scripts | |
- name: get script | |
run: curl https://raw.githubusercontent.com/skohub-io/shapes/main/scripts/validate-skos --output scripts/validate-skos | |
- name: get violation query | |
run: curl https://raw.githubusercontent.com/skohub-io/shapes/main/scripts/checkForViolation.rq --output scripts/checkForViolation.rq | |
- name: Validate with script | |
run: bash ${GITHUB_WORKSPACE}/scripts/validate-skos -s skohub.shacl.ttl ${{ matrix.file }} | |
build: | |
runs-on: ubuntu-latest | |
needs: [changedfiles, validate] | |
steps: | |
- name: Checkout 🛎️ | |
uses: actions/checkout@v2 # If you're using actions/checkout@v2 you must set persist-credentials to false in most cases for the deployment to work correctly. | |
with: | |
persist-credentials: false | |
- name: remove public and data-dir if already exists | |
run: rm -rf public data | |
- run: mkdir public | |
- run: chmod -R 777 public # user in container is node which won't have write access to public | |
- run: mkdir data | |
- run: chmod -R 777 data # user in container is node which won't have write access to public | |
- run: git clone https://github.com/skohub-io/skohub-docker-vocabs.git data/ # <-- add link to your repo here | |
- name: make .env file | |
run: echo "BASEURL=/skohub-docker-vocabs" > .env | |
- name: build public dir with docker image | |
run: > | |
docker run | |
-v $(pwd)/public:/app/public | |
-v $(pwd)/data:/app/data | |
-v $(pwd)/.env:/app/.env | |
-e GATSBY_RESPOSITORY_URL=https://github.com/skohub-io/skohub-docker-vocabs.git | |
skohub/skohub-vocabs-docker:latest | |
- name: Deploy | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./public |