Load .env for deploy

This commit is contained in:
Lectom C Han
2026-02-04 14:42:29 +09:00
parent 348b98af95
commit c5c3e30e78

View File

@@ -1,47 +1,56 @@
name: Deploy (main) name: Deploy (main)
on: on:
push: push:
branches: [ "main" ] branches: ["main"]
workflow_dispatch: workflow_dispatch:
jobs: jobs:
build-and-deploy: build-and-deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
contents: read contents: read
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v3
- name: Login to registry - name: Login to registry
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
registry: ${{ secrets.REGISTRY }} registry: ${{ secrets.REGISTRY }}
username: ${{ secrets.REGISTRY_USER }} username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }} password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Build and push - name: Build and push
uses: docker/build-push-action@v5 uses: docker/build-push-action@v5
with: with:
context: . context: .
push: true push: true
tags: | tags: |
${{ secrets.REGISTRY }}/${{ secrets.IMAGE_NAME }}:latest ${{ secrets.REGISTRY }}/${{ secrets.IMAGE_NAME }}:latest
${{ secrets.REGISTRY }}/${{ secrets.IMAGE_NAME }}:${{ github.sha }} ${{ secrets.REGISTRY }}/${{ secrets.IMAGE_NAME }}:${{ github.sha }}
- name: Deploy via SSH - name: Deploy via SSH
uses: appleboy/ssh-action@v1.0.3 uses: appleboy/ssh-action@v1.0.3
with: with:
host: ${{ secrets.SSH_HOST }} host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }} username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_KEY }} key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.SSH_PORT }} port: ${{ secrets.SSH_PORT }}
script: | script: |
cd ${{ secrets.DEPLOY_PATH }} cd ${{ secrets.DEPLOY_PATH }}
docker compose --env-file .env.production pull cat << 'EOF' > .env
docker compose --env-file .env.production up -d ${{ secrets.DEPLOY_ENV_FILE }}
EOF
# Export variables from .env file
set -a
source .env
set +a
docker compose --env-file .env pull
docker compose --env-file .env up -d