WIP parse json output with jq #14 #72
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: | |
all-ttl-files: | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.file-list }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Find TTL files | |
id: find-ttl | |
run: | | |
ttl_files=$(find . -name '*.ttl' -printf '"%p",' | sed 's/,$//') | |
echo "ttl_files=$ttl_files" | |
echo "ttl_files=$ttl_files" >> "$GITHUB_ENV" | |
- name: Set matrix for TTL files | |
id: set-matrix | |
run: echo "::set-output name=file-list::[${ttl_files}]" | |
- name: List all changed files | |
run: echo "${ttl_files}" | |
changedfiles: | |
runs-on: ubuntu-latest | |
outputs: | |
ttl: ${{ steps.set-ttl-matrix.outputs.ttl }} | |
yml: ${{ steps.set-yml-matrix.outputs.yml }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 2 | |
- name: Get changed ttl-files | |
id: changed-ttl-files | |
uses: tj-actions/changed-files@v42 | |
with: | |
files: | | |
**/*.ttl | |
json: true | |
- name: Get changed yml-files | |
id: changed-yml-files | |
uses: tj-actions/changed-files@v42 | |
with: | |
files: | | |
**/*.yml | |
json: true | |
- name: Set turtle file matrix | |
id: set-ttl-matrix | |
run: echo "ttl=${{ steps.changed-ttl-files.outputs.all_changed_files }}" >> $GITHUB_OUTPUT | |
- name: Set yml file matrix | |
id: set-yml-matrix | |
run: echo "yml=${{ steps.changed-yml-files.outputs.all_changed_files }}" >> $GITHUB_OUTPUT | |
prepare-matrix: | |
runs-on: ubuntu-latest | |
needs: [changedfiles, all-ttl-files] | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- name: Determine matrix | |
id: set-matrix | |
run: | | |
changed_files_ttl=${{ toJSON(needs.changedfiles.outputs.ttl) }} | |
changed_files_yml=${{ toJSON(needs.changedfiles.outputs.yml) }} | |
echo "$changed_files_ttl" | jq length | |
echo "$changed_files_yml" | jq length | |
if [ $(echo "$changed_files_ttl" | jq length) -gt 0 ]; then | |
echo ttl changed | |
echo "::set-output name=matrix::${{ toJSON(needs.changedfiles.outputs.ttl) }}" | |
elif [ $(echo "$changed_files_yml" | jq length) -gt 0 ]; then | |
echo yml changed | |
echo "::set-output name=matrix::${{ toJSON(needs.all-ttl-files.outputs.matrix) }}" | |
else | |
echo "::set-output name=matrix::[]" | |
fi | |
validate: | |
runs-on: ubuntu-latest | |
needs: [prepare-matrix] | |
# only run there are changed files | |
if: ${{ needs.prepare-matrix.outputs.matrix != '[]'}} | |
strategy: | |
max-parallel: 1 | |
fail-fast: false # other validation jobs should continue checking even if one file is invalid | |
matrix: | |
file: ${{ fromJson(needs.prepare-matrix.outputs.matrix) }} | |
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 fuseki directory | |
# run: mkdir fuseki | |
# - name: get fuseki inference config | |
# run: curl https://raw.githubusercontent.com/skohub-io/shapes/main/fuseki/config_inference.ttl --output fuseki/config_inference.ttl | |
# - name: get query to check for violations | |
# run: curl https://raw.githubusercontent.com/skohub-io/shapes/main/scripts/checkForViolation.rq --output scripts/checkForViolation.rq | |
# - name: Validate with script | |
# run: bash ./scripts/validate-skos -l violation -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 |