ci: update 30m limit to prevent timeout #5
This file contains hidden or 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: CD — Deploy Frontend Dashboard | |
| on: | |
| push: | |
| branches: [ "main", "production" ] | |
| paths: | |
| - "frontend/**" | |
| - ".github/**" | |
| workflow_dispatch: # Trigger manual dari GitHub Actions UI | |
| jobs: | |
| deploy-frontend: | |
| name: Deploy Frontend Stack via SSH | |
| runs-on: ubuntu-latest | |
| environment: staging | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Copy Frontend Docker Compose file via SCP | |
| uses: appleboy/scp-action@v0.1.7 | |
| with: | |
| host: ${{ secrets.SERVER_HOST }} | |
| username: ${{ secrets.SERVER_USER }} | |
| port: ${{ secrets.SERVER_PORT || '22' }} | |
| key: ${{ secrets.SSH_PRIVATE_KEY }} | |
| source: "frontend/docker-compose.yml" | |
| target: "${{ vars.DEPLOY_PATH_FRONTEND || secrets.DEPLOY_PATH_FRONTEND || format('/home/{0}/mini-grafana-frontend', secrets.SERVER_USER) }}" | |
| - name: Deploy Frontend Stack to Server via SSH | |
| uses: appleboy/ssh-action@v1.0.3 | |
| with: | |
| host: ${{ secrets.SERVER_HOST }} | |
| username: ${{ secrets.SERVER_USER }} | |
| port: ${{ secrets.SERVER_PORT || '22' }} | |
| key: ${{ secrets.SSH_PRIVATE_KEY }} | |
| script_stop: true | |
| script: | | |
| echo "==========================================================" | |
| echo " [1/3] Menentukan direktori dan Git Pull (Frontend)" | |
| echo "==========================================================" | |
| DEPLOY_DIR="${{ vars.DEPLOY_PATH_FRONTEND || secrets.DEPLOY_PATH_FRONTEND || format('/home/{0}/mini-grafana-frontend', secrets.SERVER_USER) }}" | |
| echo "Directori frontend deployment: $DEPLOY_DIR" | |
| mkdir -p "$DEPLOY_DIR" | |
| cd "$DEPLOY_DIR" || exit 1 | |
| # Jika ini repositori git atau folder tersendiri: | |
| if [ -d ".git" ]; then | |
| git fetch --all | |
| git reset --hard origin/main | |
| fi | |
| echo "==========================================================" | |
| echo " [2/3] Menulis file .env dari secret ENV_FRONTEND" | |
| echo "==========================================================" | |
| cat <<'EOF_ENV' > .env | |
| ${{ secrets.ENV_FRONTEND }} | |
| EOF_ENV | |
| chmod 600 .env | |
| echo "==========================================================" | |
| echo " [3/3] Menjalankan / Merestart Container Frontend" | |
| echo "==========================================================" | |
| docker network inspect proxy_network >/dev/null 2>&1 || docker network create proxy_network | |
| cd frontend && docker compose up -d --force-recreate | |
| echo "✅ Deployment Frontend Dashboard selesai!" |