Skip to content

Commit 45b03bb

Browse files
authored
👷 update CI (#56)
1 parent f085a1b commit 45b03bb

File tree

4 files changed

+56
-50
lines changed

4 files changed

+56
-50
lines changed

.github/workflows/codeql-analysis.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,16 @@ jobs:
1313
analyze:
1414
name: Analyze
1515
runs-on: ubuntu-latest
16-
1716
strategy:
1817
fail-fast: false
1918
matrix:
2019
language: [ 'python' ]
21-
2220
steps:
2321
- name: Checkout repository
2422
uses: actions/checkout@v3
25-
2623
- name: Initialize CodeQL
2724
uses: github/codeql-action/init@v2
2825
with:
2926
languages: ${{ matrix.language }}
30-
3127
- name: Perform CodeQL Analysis
3228
uses: github/codeql-action/analyze@v2

.github/workflows/publish.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,14 @@ jobs:
3737
- name: Install build dependencies
3838
id: install_build_dependencies
3939
run: |
40+
set -e
4041
python3 -m pip install --upgrade pip
4142
pip install build setuptools wheel
4243
- name: Build a binary wheel and a source tarball
4344
id: build
44-
run: python3 -m build --sdist --wheel --outdir dist/ .
45+
run: |
46+
set -e
47+
python3 -m build --sdist --wheel --outdir dist/ .
4548
- name: Publish distribution package to Test PyPI
4649
id: publish_test
4750
uses: pypa/gh-action-pypi-publish@release/v1

.github/workflows/test.yml

Lines changed: 52 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
steps:
1919
- uses: actions/checkout@v3
2020
- name: Set up Python
21-
uses: actions/setup-python@v3
21+
uses: actions/setup-python@v4
2222
with:
2323
python-version: "3.x"
2424
- name: Install dependencies
@@ -30,6 +30,7 @@ jobs:
3030
test:
3131
needs: analyze
3232
runs-on: ubuntu-latest
33+
environment: test
3334
strategy:
3435
matrix:
3536
include:
@@ -422,9 +423,7 @@ jobs:
422423
legacy_db: 0
423424
experimental: false
424425
py: "3.11"
425-
426426
continue-on-error: ${{ matrix.experimental }}
427-
428427
services:
429428
mysql:
430429
image: "${{ matrix.db }}"
@@ -433,73 +432,88 @@ jobs:
433432
env:
434433
MYSQL_ALLOW_EMPTY_PASSWORD: yes
435434
options: "--name=mysqld"
436-
437435
steps:
438-
- name: Fix MySQL GA
439-
run: |
440-
sudo apt-get update
441-
sudo apt-get remove mysql* && sudo apt-get install -y mysql-server libmysqlclient-dev
442-
443436
- uses: actions/checkout@v3
444437
- name: Set up Python ${{ matrix.py }}
445438
uses: actions/setup-python@v4
446439
with:
447440
python-version: ${{ matrix.py }}
448-
449441
- uses: actions/cache@v3
450442
with:
451443
path: ~/.cache/pip
452444
key: ${{ runner.os }}-pip-1
453445
restore-keys: |
454446
${{ runner.os }}-pip-
455-
456447
- name: Install dependencies
457448
run: |
449+
set -e
458450
python -m pip install --upgrade pip
459451
python -m pip install -U codecov tox-gh-actions
460452
pip install -r requirements_dev.txt
461-
462453
- name: Set up MySQL
463454
env:
464455
DB: ${{ matrix.db }}
456+
MYSQL_USER: ${{ secrets.MYSQL_USER }}
457+
MYSQL_PASSWORD: ${{ secrets.MYSQL_PASSWORD }}
458+
MYSQL_DATABASE: ${{ vars.MYSQL_DATABASE }}
459+
MYSQL_HOST: ${{ vars.MYSQL_HOST }}
460+
MYSQL_PORT: ${{ vars.MYSQL_PORT }}
465461
run: |
462+
set -e
466463
while :
467464
do
468-
sleep 1
469-
mysql -h127.0.0.1 -uroot -e 'select version()' && break
465+
sleep 1
466+
mysql -h127.0.0.1 -uroot -e 'select version()' && break
470467
done
471-
if [ $DB == 'mysql:8.0' ]; then
472-
WITH_PLUGIN='with mysql_native_password'
473-
mysql -h127.0.0.1 -uroot -e "SET GLOBAL local_infile=on"
474-
docker cp mysqld:/var/lib/mysql/public_key.pem "${HOME}"
475-
docker cp mysqld:/var/lib/mysql/ca.pem "${HOME}"
476-
docker cp mysqld:/var/lib/mysql/server-cert.pem "${HOME}"
477-
docker cp mysqld:/var/lib/mysql/client-key.pem "${HOME}"
478-
docker cp mysqld:/var/lib/mysql/client-cert.pem "${HOME}"
479-
mysql -uroot -h127.0.0.1 -e '
480-
CREATE USER
481-
user_sha256 IDENTIFIED WITH "sha256_password" BY "pass_sha256",
482-
nopass_sha256 IDENTIFIED WITH "sha256_password",
483-
user_caching_sha2 IDENTIFIED WITH "caching_sha2_password" BY "pass_caching_sha2",
484-
nopass_caching_sha2 IDENTIFIED WITH "caching_sha2_password"
485-
PASSWORD EXPIRE NEVER;'
486-
mysql -uroot -h127.0.0.1 -e 'GRANT RELOAD ON *.* TO user_caching_sha2;'
468+
if [ "$DB" == 'mysql:8.0' ]; then
469+
WITH_PLUGIN='with mysql_native_password'
470+
mysql -h127.0.0.1 -uroot -e "SET GLOBAL local_infile=on"
471+
docker cp mysqld:/var/lib/mysql/public_key.pem "${HOME}"
472+
docker cp mysqld:/var/lib/mysql/ca.pem "${HOME}"
473+
docker cp mysqld:/var/lib/mysql/server-cert.pem "${HOME}"
474+
docker cp mysqld:/var/lib/mysql/client-key.pem "${HOME}"
475+
docker cp mysqld:/var/lib/mysql/client-cert.pem "${HOME}"
476+
mysql -uroot -h127.0.0.1 -e '
477+
CREATE USER
478+
user_sha256 IDENTIFIED WITH "sha256_password" BY "pass_sha256",
479+
nopass_sha256 IDENTIFIED WITH "sha256_password",
480+
user_caching_sha2 IDENTIFIED WITH "caching_sha2_password" BY "pass_caching_sha2",
481+
nopass_caching_sha2 IDENTIFIED WITH "caching_sha2_password"
482+
PASSWORD EXPIRE NEVER;'
483+
mysql -uroot -h127.0.0.1 -e 'GRANT RELOAD ON *.* TO user_caching_sha2;'
487484
else
488-
WITH_PLUGIN=''
485+
WITH_PLUGIN=''
489486
fi
490-
mysql -h127.0.0.1 -uroot -e 'create database test_db DEFAULT CHARACTER SET utf8mb4'
491-
mysql -h127.0.0.1 -uroot -e "create user tester identified ${WITH_PLUGIN} by 'testpass'; grant all on test_db.* to tester;"
492-
mysql -h127.0.0.1 -uroot -e "create user tester@localhost identified ${WITH_PLUGIN} by 'testpass'; grant all on test_db.* to tester@localhost;"
493-
cp ci/db_credentials.json tests/db_credentials.json
494-
487+
mysql -h127.0.0.1 -uroot -e "create database $MYSQL_DATABASE DEFAULT CHARACTER SET utf8mb4"
488+
mysql -h127.0.0.1 -uroot -e "create user $MYSQL_USER identified $WITH_PLUGIN by '${MYSQL_PASSWORD}'; grant all on ${MYSQL_DATABASE}.* to ${MYSQL_USER};"
489+
mysql -h127.0.0.1 -uroot -e "create user ${MYSQL_USER}@localhost identified $WITH_PLUGIN by '${MYSQL_PASSWORD}'; grant all on ${MYSQL_DATABASE}.* to ${MYSQL_USER}@localhost;"
490+
- name: Create db_credentials.json
491+
env:
492+
MYSQL_USER: ${{ secrets.MYSQL_USER }}
493+
MYSQL_PASSWORD: ${{ secrets.MYSQL_PASSWORD }}
494+
MYSQL_DATABASE: ${{ vars.MYSQL_DATABASE }}
495+
MYSQL_HOST: ${{ vars.MYSQL_HOST }}
496+
MYSQL_PORT: ${{ vars.MYSQL_PORT }}
497+
run: |
498+
set -e
499+
jq -n \
500+
--arg mysql_user "$MYSQL_USER" \
501+
--arg mysql_password "$MYSQL_PASSWORD" \
502+
--arg mysql_database "$MYSQL_DATABASE" \
503+
--arg mysql_host "$MYSQL_HOST" \
504+
--arg mysql_port $MYSQL_PORT \
505+
'$ARGS.named' > tests/db_credentials.json
495506
- name: Test with tox
496-
run: tox
497507
env:
498508
LEGACY_DB: ${{ matrix.legacy_db }}
499-
509+
run: tox
500510
- name: Upload coverage to Codecov
501511
uses: codecov/codecov-action@v3
502512
with:
503513
files: ./coverage.xml
504514
env_vars: OS,PYTHON
505515
verbose: true
516+
- name: Cleanup
517+
if: ${{ always() }}
518+
run: |
519+
rm -rf tests/db_credentials.json

ci/db_credentials.json

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)