diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..05214af --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,66 @@ +name: CI + +on: + push: + branches: [ "develop" ] + paths-ignore: + - '**.md' + + + # Adds ability to run this workflow manually + workflow_dispatch: + + +jobs: + + lint: + name: Run linting + runs-on: ubuntu-latest + env: + HADOLINT_RECURSIVE: "true" + + steps: + - uses: psf/black@stable + with: + options: "-l 120 --check" + + - uses: actions/checkout@v3 + - uses: hadolint/hadolint-action@v3.1.0 + with: + dockerfile: "Dockerfile*" + + + tests: + name: Run unit-tests + runs-on: ubuntu-latest + + strategy: + matrix: + python-version: [3.9, 3.11, 3.12] + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Run tests + run: python -m unittest discover -s tests + + + build: + name: Build a ci image + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Build the Docker image + run: docker build . --file Dockerfile --tag ci:$(date +%s) diff --git a/.gitignore b/.gitignore index 37577ba..f9f24dc 100644 --- a/.gitignore +++ b/.gitignore @@ -154,3 +154,6 @@ node_modules # The media folder contents media/* !media/.gitkeep + +# Local only files +.local-only/