Skip to content

Merge pull request #168 from pythonkr/devdev #40

Merge pull request #168 from pythonkr/devdev

Merge pull request #168 from pythonkr/devdev #40

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