mirror of
				https://github.com/enpaul/peewee-plus.git
				synced 2025-11-04 09:16:47 +00:00 
			
		
		
		
	Add github actions CI
This commit is contained in:
		
							
								
								
									
										34
									
								
								.github/scripts/setup-env.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										34
									
								
								.github/scripts/setup-env.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							@@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Environment setup script for the local project. Intended to be used with automation
 | 
				
			||||||
 | 
					# to create a repeatable local environment for tests to be run in. The python env
 | 
				
			||||||
 | 
					# this script creates can be accessed at the location defined by the CI_VENV variable
 | 
				
			||||||
 | 
					# below.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -e;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CI_CACHE=$HOME/.cache;
 | 
				
			||||||
 | 
					POETRY_VERSION=1.1.14;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir --parents "$CI_CACHE";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					command -v python;
 | 
				
			||||||
 | 
					python --version;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					curl --location https://install.python-poetry.org \
 | 
				
			||||||
 | 
					  --output "$CI_CACHE/install-poetry.py" \
 | 
				
			||||||
 | 
					  --silent \
 | 
				
			||||||
 | 
					  --show-error;
 | 
				
			||||||
 | 
					python "$CI_CACHE/install-poetry.py" \
 | 
				
			||||||
 | 
					  --version "$POETRY_VERSION" \
 | 
				
			||||||
 | 
					  --yes;
 | 
				
			||||||
 | 
					poetry --version --no-ansi;
 | 
				
			||||||
 | 
					poetry run pip --version;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					poetry install \
 | 
				
			||||||
 | 
					  --quiet \
 | 
				
			||||||
 | 
					  --remove-untracked \
 | 
				
			||||||
 | 
					  --no-ansi;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					poetry env info;
 | 
				
			||||||
 | 
					poetry run tox --version;
 | 
				
			||||||
							
								
								
									
										78
									
								
								.github/workflows/ci.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								.github/workflows/ci.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					name: CI
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  pull_request:
 | 
				
			||||||
 | 
					    types: ["opened", "synchronize"]
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches: ["devel"]
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  Test:
 | 
				
			||||||
 | 
					    name: Python ${{ matrix.python.version }}
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    strategy:
 | 
				
			||||||
 | 
					      matrix:
 | 
				
			||||||
 | 
					        python:
 | 
				
			||||||
 | 
					          - version: "3.6"
 | 
				
			||||||
 | 
					            toxenv: py36
 | 
				
			||||||
 | 
					          - version: "3.7"
 | 
				
			||||||
 | 
					            toxenv: py37
 | 
				
			||||||
 | 
					          - version: "3.8"
 | 
				
			||||||
 | 
					            toxenv: py38
 | 
				
			||||||
 | 
					          - version: "3.9"
 | 
				
			||||||
 | 
					            toxenv: py39
 | 
				
			||||||
 | 
					          - version: "3.10"
 | 
				
			||||||
 | 
					            toxenv: py310
 | 
				
			||||||
 | 
					      fail-fast: true
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - name: Checkout
 | 
				
			||||||
 | 
					        uses: actions/checkout@v2
 | 
				
			||||||
 | 
					      - name: Install Python ${{ matrix.python.version }}
 | 
				
			||||||
 | 
					        uses: actions/setup-python@v4
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          python-version: ${{ matrix.python.version }}
 | 
				
			||||||
 | 
					      - name: Configure Job Cache
 | 
				
			||||||
 | 
					        uses: actions/cache@v3
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          path: |
 | 
				
			||||||
 | 
					            ~/.cache/pip
 | 
				
			||||||
 | 
					            ~/.cache/pypoetry/cache
 | 
				
			||||||
 | 
					            ~/.poetry
 | 
				
			||||||
 | 
					          # Including the hashed poetry.lock in the cache slug ensures that the cache
 | 
				
			||||||
 | 
					          # will be invalidated, and thus all packages will be redownloaded, if the
 | 
				
			||||||
 | 
					          # lockfile is updated
 | 
				
			||||||
 | 
					          key: ${{ runner.os }}-${{ matrix.python.toxenv }}-${{ hashFiles('**/poetry.lock') }}
 | 
				
			||||||
 | 
					      - name: Configure Path
 | 
				
			||||||
 | 
					        run: echo "$HOME/.local/bin" >> $GITHUB_PATH
 | 
				
			||||||
 | 
					      - name: Configure Environment
 | 
				
			||||||
 | 
					        run: .github/scripts/setup-env.sh
 | 
				
			||||||
 | 
					      - name: Run Toxenv ${{ matrix.python.toxenv }}
 | 
				
			||||||
 | 
					        run: poetry run tox -e ${{ matrix.python.toxenv }}
 | 
				
			||||||
 | 
					  Check:
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - name: Checkout
 | 
				
			||||||
 | 
					        uses: actions/checkout@v2
 | 
				
			||||||
 | 
					      - name: Install Python 3.8
 | 
				
			||||||
 | 
					        uses: actions/setup-python@v4
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          python-version: 3.8
 | 
				
			||||||
 | 
					      - name: Configure Job Cache
 | 
				
			||||||
 | 
					        uses: actions/cache@v3
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          path: |
 | 
				
			||||||
 | 
					            ~/.cache/pip
 | 
				
			||||||
 | 
					            ~/.cache/pypoetry/cache
 | 
				
			||||||
 | 
					            ~/.poetry
 | 
				
			||||||
 | 
					          # Hardcoded 'py310' slug here lets this cache piggyback on the 'py310' cache
 | 
				
			||||||
 | 
					          # that is generated for the tests above
 | 
				
			||||||
 | 
					          key: ${{ runner.os }}-py310-${{ hashFiles('**/poetry.lock') }}
 | 
				
			||||||
 | 
					      - name: Configure Path
 | 
				
			||||||
 | 
					        run: echo "$HOME/.local/bin" >> $GITHUB_PATH
 | 
				
			||||||
 | 
					      - name: Configure Environment
 | 
				
			||||||
 | 
					        run: .github/scripts/setup-env.sh
 | 
				
			||||||
 | 
					      - name: Run Static Analysis Checks
 | 
				
			||||||
 | 
					        run: poetry run tox -e static
 | 
				
			||||||
 | 
					      - name: Run Static Analysis Checks (Tests)
 | 
				
			||||||
 | 
					        run: poetry run tox -e static-tests
 | 
				
			||||||
 | 
					      - name: Run Security Checks
 | 
				
			||||||
 | 
					        run: poetry run tox -e security
 | 
				
			||||||
		Reference in New Issue
	
	Block a user