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 SBM Analyzer | ||
on: | ||
push: | ||
branches: | ||
- main | ||
jobs: | ||
deploy-analyzer: | ||
runs-on: ubuntu-latest | ||
environment: prod | ||
steps: | ||
# 1. リポジトリをチェックアウト | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
# 2. 成果物をEC2にデプロイ | ||
- name: Deploy code to EC2 | ||
uses: burnett01/rsync-deployments@5.1 | ||
with: | ||
switches: '-avz --delete --rsync-path="sudo rsync"' | ||
path: ./ # ローカルのコードパス | ||
remote_path: /srv/sbm/analyzer/ # EC2のデプロイ先ディレクトリ | ||
remote_host: ${{ secrets.HOST }} | ||
remote_user: ${{ secrets.USER }} | ||
remote_key: ${{ secrets.SECRET_KEY }} | ||
# 3. Conda 環境で依存関係のインストール | ||
- name: Set up Python environment and install dependencies | ||
uses: appleboy/ssh-action@v0.1.5 | ||
with: | ||
host: ${{ secrets.HOST }} | ||
username: ${{ secrets.USER }} | ||
key: ${{ secrets.SECRET_KEY }} | ||
script: | | ||
cd /srv/sbm/analyzer | ||
source ~/miniconda3/bin/activate | ||
conda activate sbm-analyzer | ||
pip install --upgrade pip | ||
pip install -r requirements.txt | ||
# 4. .env ファイルの生成 | ||
- name: Generate .env file | ||
uses: appleboy/ssh-action@v0.1.5 | ||
with: | ||
host: ${{ secrets.HOST }} | ||
username: ${{ secrets.USER }} | ||
key: ${{ secrets.SECRET_KEY }} | ||
script: | | ||
# 権限を一時的に変更 | ||
sudo chmod 777 /srv/sbm/analyzer/ | ||
# .env.example をコピーして .env を生成 | ||
cp /srv/sbm/analyzer/.env.example /srv/sbm/analyzer/.env | ||
# 置換して環境変数を適用 | ||
sed -i "s|ENVIRONMENT=.*|ENVIRONMENT=prod|" /srv/sbm/analyzer/.env | ||
sed -i "s|DB_USER=.*|DB_USER=${{ secrets.DB_USER }}|" /srv/sbm/analyzer/.env | ||
sed -i "s|DB_PASSWORD=.*|DB_PASSWORD=${{ secrets.DB_PASSWORD }}|" /srv/sbm/analyzer/.env | ||
sed -i "s|DB_HOST=.*|DB_HOST=${{ secrets.DB_HOST }}|" /srv/sbm/analyzer/.env | ||
sed -i "s|DB_PORT=.*|DB_PORT=${{ secrets.DB_PORT }}|" /srv/sbm/analyzer/.env | ||
sed -i "s|DB_NAME=.*|DB_NAME=${{ secrets.DB_NAME }}|" /srv/sbm/analyzer/.env | ||
# 権限を元に戻す | ||
sudo chmod 755 /srv/sbm/analyzer/ | ||
sudo chown -R ubuntu:ubuntu /srv/sbm/analyzer/ | ||
# 5. サービスを再起動 | ||
- name: Restart sbm-analyzer service | ||
uses: appleboy/ssh-action@v0.1.5 | ||
with: | ||
host: ${{ secrets.HOST }} | ||
username: ${{ secrets.USER }} | ||
key: ${{ secrets.SECRET_KEY }} | ||
script: | | ||
sudo systemctl restart sbm-analyzer |