fix: status code 200 #234
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: Django CI | |
on: | |
push: | |
branches: [ "master" ] | |
pull_request: | |
branches: [ "master" ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
max-parallel: 1 | |
matrix: | |
python-version: [ 3.11 ] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: pip | |
- name: Set up | |
env: | |
ENGINE: django.db.backends.mysql | |
NAME: portfolio_db | |
USER: python | |
PASSWORD: python123 | |
HOST: localhost | |
PORT: 3306 | |
run: | | |
sudo systemctl start mysql | |
mysql -u root -proot -e "CREATE USER '$USER'@'localhost' IDENTIFIED BY '$PASSWORD';" | |
mysql -u root -proot -e "GRANT CREATE, DROP, SELECT, UPDATE, INSERT, DELETE, ALTER, REFERENCES, INDEX on $NAME.* to '$USER'@'localhost';" | |
mysql -u root -proot -e "GRANT CREATE, DROP, SELECT, UPDATE, INSERT, DELETE, ALTER, REFERENCES, INDEX on test_$NAME.* to '$USER'@'localhost';" | |
mysql -u$USER -p$PASSWORD -e "CREATE DATABASE $NAME DEFAULT CHARACTER SET utf8mb4;" | |
python3 --version | |
python3 -m venv venv | |
source venv/bin/activate | |
python -m pip install --upgrade pip | |
python -m pip install -r requirements.txt | |
python manage.py makemigrations vietnam_research gmarker shopping linebot warehouse | |
# Output the environment variables | |
echo $ENGINE | |
echo $NAME | |
echo $USER | |
echo $PASSWORD | |
echo $HOST | |
echo $PORT | |
python manage.py migrate | |
export DJANGO_SECRET_KEY="$(base64 <<< "$RANDOM|TeStiNg|$RANDOM" | tr -d '\n')" | |
- name: Check Tables and Permissions | |
env: | |
DB_NAME: portfolio_db | |
DB_USER: root | |
DB_USER_PYTHON: python | |
DB_PASSWORD: root | |
DB_PASSWORD_PYTHON: python123 | |
run: | | |
echo "Checking DB tables..." | |
mysql -u$DB_USER_PYTHON -p$DB_PASSWORD_PYTHON -e "USE $DB_NAME; SHOW TABLES;" | |
echo "Checking user permissions..." | |
mysql -u$DB_USER -p$DB_PASSWORD -e "SHOW GRANTS FOR '$DB_USER_PYTHON'@'localhost';" | |
- name: Run tests | |
env: | |
ENGINE: django.db.backends.mysql | |
NAME: portfolio_db | |
USER: python | |
PASSWORD: python123 | |
HOST: localhost | |
PORT: 3306 | |
run: | | |
mysql -u root -proot -e "GRANT ALL ON portfolio_db.* TO '$USER'@'localhost';" | |
mysql -u root -proot -e "GRANT ALL ON test_portfolio_db.* TO '$USER'@'localhost';" | |
source venv/bin/activate | |
python manage.py test |