Skip to content

Updates to dependencies and GitHub actions, and some code clean-up #299

Updates to dependencies and GitHub actions, and some code clean-up

Updates to dependencies and GitHub actions, and some code clean-up #299

Workflow file for this run

name: CI
on:
- push
- pull_request
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: '**/node_modules'
key: ${{ runner.os }}-lint-modules-${{ hashFiles('**/yarn.lock') }}
- uses: actions/setup-node@v4
with:
node-version: 20.x
- run: corepack enable
- run: yarn install --ignore-engines --frozen-lockfile
- run: yarn run lint
test:
needs: lint
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
node-version:
- 16.x
- 18.x
- 20.x
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- run: git config --global core.autocrlf input
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: '**/node_modules'
key: ${{ runner.os }}-test-modules-${{ hashFiles('**/yarn.lock') }}
- run: corepack enable
- run: yarn install --ignore-engines --frozen-lockfile
- run: yarn run build
- run: yarn run test
- uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.github_token }}
flag-name: run-${{ matrix.node-version }}
parallel: true
coveralls:
needs: test
runs-on: ubuntu-latest
steps:
- name: Consolidate test coverage from different jobs
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.github_token }}
parallel-finished: true
jenafuseki:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v4
with:
node-version: 20.x
- run: git config --global core.autocrlf input
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: '**/node_modules'
key: ${{ runner.os }}-docker-modules-${{ hashFiles('**/yarn.lock') }}
- run: corepack enable
- run: yarn install --ignore-engines --frozen-lockfile
- run: yarn build
- run: |
docker run \
--detach \
--name endpoint \
--publish 4000:3030 \
--env FUSEKI_DATASET_1=mydataset \
--volume $(pwd)/.github/workflows/shiro.ini:/jena-fuseki/shiro.ini \
stain/jena-fuseki@sha256:4d84eb09dc69603cab990a25a5ad683cec648159f39ccf5dbffba312e7d7666a
- name: insert data
run: |
node bin/fetch-sparql-endpoint.js http://localhost:4000/mydataset/update --query 'insert data { <ex:s> <ex:p> <ex:o> }' > out.txt
cat out.txt
cat out.txt | grep 'OK' &> /dev/null && echo "OK" || (echo "Update failed" && exit 1)
- name: test data existence
run: |
node bin/fetch-sparql-endpoint.js http://localhost:4000/mydataset/sparql --query 'select * where { ?s ?p ?o }' > out.txt
cat out.txt
cat out.txt | grep '{"s":"ex:s","p":"ex:p","o":"ex:o"}' &> /dev/null && echo "OK" || (echo "Query failed" && exit 1)
- run: docker stop endpoint
webpack:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: '**/node_modules'
key: ${{ runner.os }}-webpack-modules-${{ hashFiles('**/yarn.lock') }}
- uses: actions/setup-node@v4
with:
node-version: 20.x
- run: corepack enable
- run: yarn install --ignore-engines --frozen-lockfile
- run: npx webpack