Merge pull request #168 from pythonkr/devdev #40
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: Deploy Django with zappa on PRODUCTION stage | |
on: | |
push: | |
branches: [main] | |
workflow_dispatch: | |
jobs: | |
build: | |
if: github.repository_owner == 'pythonkr' | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ['3.10'] | |
steps: | |
- uses: actions/checkout@v2 | |
#- uses: psf/black@stable | |
# with: | |
# options: "--check --verbose" | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install mysql common | |
run: | | |
sudo apt-get install -y mysql-common | |
# - name: Install python version | |
# uses: gabrielfalcao/pyenv-action@v9 | |
# with: | |
# default: "${{ matrix.python }}" | |
# command: | | |
# python -m pip install --upgrade pip | |
# pip install pytest | |
# if [ -f requirements.txt ]; then pip install -r requirements.txt; fi | |
- name: Setup Virtualenv | |
run: | | |
pip install virtualenv | |
- name: Create Virtualenv | |
run: | | |
virtualenv zappa-env | |
# - name: Activate Virtualenv | |
# run: | | |
# source ./pyconweb2022-zappa/bin/activate | |
- name: Install dependencies | |
run: | | |
source ./zappa-env/bin/activate | |
python -m pip install --upgrade pip | |
pip install pytest | |
pip install zappa | |
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi | |
# Retrieve repo name | |
- name: Get current date and repo name | |
id: info | |
run: | | |
echo "::set-output name=repository_name::$(echo ${{ github.repository }} | sed -e 's/${{ github.repository_owner }}\///')" | |
# Checkout and import zappa config | |
- name: Checkout secrets repo | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ secrets.PYCONKR_SECRET_REPOSITORY }} | |
ssh-key: ${{ secrets.PYCONKR_SECRET_REPOSITORY_DEPLOY_KEY }} | |
path: secret_envs | |
clean: false | |
sparse-checkout-cone-mode: false | |
sparse-checkout: | | |
${{ steps.info.outputs.repository_name }}/zappa_settings.json | |
- run: mv secret_envs/${{ steps.info.outputs.repository_name }}/zappa_settings.json ./zappa_settings.json && rm -rf secret_envs | |
# - name: Test with Django Test | |
# run: | | |
# source ./zappa-env/bin/activate | |
# python manage.py test | |
# | |
# - name: Test with pytest | |
# run: | | |
# source ./zappa-env/bin/activate | |
# pytest . | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.PYCON_DEV_2023_AWS_KEY }} | |
aws-secret-access-key: ${{ secrets.PYCON_DEV_2023_AWS_SECRET }} | |
aws-region: ap-northeast-2 | |
- name: Zappa Deploy(Update) | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.PYCON_DEV_2023_AWS_KEY }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.PYCON_DEV_2023_AWS_SECRET }} | |
run: | | |
source ./zappa-env/bin/activate | |
zappa update prod2023 | |
# zappa manage prod2023 "collectstatic --no-input" | |
- name: Collect Static Files to S3 | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.PYCON_DEV_2023_AWS_KEY }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.PYCON_DEV_2023_AWS_SECRET }} | |
AWS_S3_ACCESS_KEY_ID: ${{ secrets.PYCON_DEV_2023_AWS_KEY }} | |
AWS_S3_SECRET_ACCESS_KEY: ${{ secrets.PYCON_DEV_2023_AWS_SECRET }} | |
run: | | |
source ./zappa-env/bin/activate | |
python manage.py collectstatic --no-input --settings=pyconkr.settings-prod |