diff --git a/.ci-scripts/indent b/.ci-scripts/indent new file mode 100755 index 0000000..4bf7cb0 --- /dev/null +++ b/.ci-scripts/indent @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -e # halt script on error + +rm -f /tmp/indent.py +wget -q https://raw.githubusercontent.com/stfc/Pan-Indenter/master/pan_indent_checker.py -O /tmp/indent.py +chmod u+x /tmp/indent.py + +git diff --name-only HEAD^ | grep '\.pan$' | xargs -rn1 /tmp/indent.py check || exit 1 diff --git a/.ci-scripts/panlint b/.ci-scripts/panlint new file mode 100755 index 0000000..b7ba142 --- /dev/null +++ b/.ci-scripts/panlint @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -e # halt script on error + +rm -f /tmp/panlint.py +wget -q https://raw.githubusercontent.com/quattor/pan/master/panc/src/main/scripts/panlint/panlint.py -O /tmp/panlint.py +chmod u+x /tmp/panlint.py + +git diff --name-only HEAD^ | grep '\.pan$' | xargs -r /tmp/panlint.py || exit 1 diff --git a/.ci-scripts/test-library b/.ci-scripts/test-library new file mode 100755 index 0000000..6bb5bec --- /dev/null +++ b/.ci-scripts/test-library @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -e # halt script on error + +# Retrieve last version of create-vanilla-SCDB from GitHub +echo "Downloading create-vanilla-SCDB from GitHub..." +rm -f /tmp/create-vanilla-SCDB.sh +wget -q https://raw.githubusercontent.com/quattor/scdb/master/utils/scdb/create-vanilla-SCDB.sh -O /tmp/create-vanilla-SCDB.sh +chmod u+x /tmp/create-vanilla-SCDB.sh + +/tmp/create-vanilla-SCDB.sh -F --continuous-integration HEAD diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml new file mode 100644 index 0000000..22bc397 --- /dev/null +++ b/.github/workflows/continuous-integration.yaml @@ -0,0 +1,54 @@ +name: Run Tests + +on: [push, pull_request] + +jobs: + + test-library: + runs-on: ubuntu-latest + container: ghcr.io/quattor/quattor-test-container:latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Install dependencies + run: dnf -y install subversion + - name: run tests + run: .ci-scripts/test-library + env: + TRAVIS_BUILD_DIR: "$GITHUB_WORKSPACE" + TRAVIS_REPO_SLUG: "$GITHUB_REPOSITORY" + TRAVIS_BRANCH: "${GITHUB_HEAD_REF:-master}" + + panlint: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + # we need the full repo or HEAD^ does not work + fetch-depth: 0 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: 3 + - name: Install dependencies + run: pip install colorama prettytable six + - name: run panlint + run: .ci-scripts/panlint + + indentation: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + # we need the full repo or HEAD^ does not work + fetch-depth: 0 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: 3 + - name: Install dependencies + run: pip install colorama + - name: run indent checker + run: .ci-scripts/indent