feat: fixed should_reload
behaviour, close PostgreSQL connections, block until PostgresqlWatcher
is ready, refactorings
#65
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: tests | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: [ master ] | |
jobs: | |
tests: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ "3.10", "3.11", "3.12" ] | |
os: [ ubuntu-latest, macOS-latest, windows-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Set up PostgreSQL on Linux | |
if: startsWith(runner.os, 'linux') | |
run: | | |
sudo systemctl start postgresql.service | |
pg_isready | |
sudo -u postgres psql --command="ALTER USER postgres WITH PASSWORD '123456'" --command="\du" | |
- name: Setup PostgreSQL on macOS | |
if: startsWith(runner.os, 'macos') | |
run: | | |
brew install postgresql@16 | |
brew services start postgresql@16 | |
export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH" | |
echo "Check PostgreSQL service is running" | |
i=10 | |
COMMAND='pg_isready' | |
while [ $i -gt 0 ]; do | |
echo "Check PostgreSQL service status" | |
eval $COMMAND && break | |
((i--)) | |
if [ $i == 0 ]; then | |
echo "PostgreSQL service not ready, all attempts exhausted" | |
exit 1 | |
fi | |
echo "PostgreSQL service not ready, wait 10 more sec, attempts left: $i" | |
sleep 10 | |
done | |
psql --command="CREATE USER postgres PASSWORD '123456'" --command="\du" postgres | |
- name: Start PostgreSQL on Windows | |
if: startsWith(runner.os, 'windows') | |
run: | | |
$pgService = Get-Service -Name postgresql* | |
Set-Service -InputObject $pgService -Status running -StartupType automatic | |
Start-Process -FilePath "$env:PGBIN\pg_isready" -Wait -PassThru | |
& $env:PGBIN\psql --command="ALTER USER postgres WITH PASSWORD '123456'" --command="\du" | |
- name: Upgrade install tools | |
run: python -m pip install --upgrade setuptools wheel | |
- name: Install dependencies | |
run: | | |
pip install -r requirements.txt | |
pip install -r dev_requirements.txt | |
- name: Run tests | |
run: | | |
python -m unittest discover -s tests -t tests | |
coveralls: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.12' | |
- name: Install dependencies | |
run: | | |
pip install -r requirements.txt | |
pip install -r dev_requirements.txt | |
pip install coveralls | |
pip install coverage | |
- name: Set up PostgreSQL on Linux | |
if: startsWith(runner.os, 'linux') | |
run: | | |
sudo systemctl start postgresql.service | |
pg_isready | |
sudo -u postgres psql --command="ALTER USER postgres WITH PASSWORD '123456'" --command="\du" | |
- name: Run tests | |
run: coverage run -m unittest discover -s tests -t tests | |
- name: Upload coverage data to coveralls.io | |
run: coveralls --service=github | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
release: | |
name: Release | |
runs-on: ubuntu-latest | |
needs: [ tests, coveralls ] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Setup Node.js | |
uses: actions/setup-node@v1 | |
with: | |
node-version: '20' | |
- name: Setup | |
run: npm install -g semantic-release @semantic-release/github @semantic-release/changelog @semantic-release/commit-analyzer @semantic-release/git @semantic-release/release-notes-generator semantic-release-pypi | |
- name: Set up python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.12' | |
- name: Install setuptools | |
run: python -m pip install --upgrade setuptools wheel twine | |
- name: Release | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} | |
run: npx semantic-release |