diff --git a/.gitea/workflows/deploy-dev.yml b/.gitea/workflows/deploy-dev.yml index a21948d..a593acb 100644 --- a/.gitea/workflows/deploy-dev.yml +++ b/.gitea/workflows/deploy-dev.yml @@ -12,37 +12,27 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Build Docker Image run: | - docker build -t merchbay_admin:dev . + git clone ${{ gitea.repository_url }} /workspace/repo || true + cd /workspace/repo + git fetch origin ${{ gitea.ref_name }} + git checkout ${{ gitea.ref_name }} + git pull origin ${{ gitea.ref_name }} - - name: Save Docker Image + - name: Setup SSH Key run: | - docker save merchbay_admin:dev | gzip > merchbay_admin_dev.tar.gz + mkdir -p ~/.ssh + echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/deploy_key + chmod 600 ~/.ssh/deploy_key - - name: Deploy to Development Server via SSH - uses: appleboy/scp-action@master - with: - host: ${{ secrets.DEPLOY_HOST }} - username: ${{ secrets.DEPLOY_USER }} - key: ${{ secrets.DEPLOY_SSH_KEY }} - port: ${{ secrets.DEPLOY_PORT || 22 }} - source: "merchbay_admin_dev.tar.gz,docker-compose.yml" - target: "/tmp/merchbay_admin_dev_deploy" + - name: Transfer Files to Development Server + run: | + cd /workspace/repo + scp -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key merchbay_admin_dev.tar.gz docker-compose.yml ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:/tmp/ - - name: Execute Development Deployment Script - uses: appleboy/ssh-action@master - with: - host: ${{ secrets.DEPLOY_HOST }} - username: ${{ secrets.DEPLOY_USER }} - key: ${{ secrets.DEPLOY_SSH_KEY }} - port: ${{ secrets.DEPLOY_PORT || 22 }} - script: | + - name: Deploy to Development Server + run: | + ssh -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} << 'ENDSSH' # Set deployment directory for dev DEPLOY_DIR="/var/www/merchbay_admin_dev" @@ -50,7 +40,7 @@ jobs: mkdir -p $DEPLOY_DIR # Load the Docker image - cd /tmp/merchbay_admin_dev_deploy + cd /tmp docker load < merchbay_admin_dev.tar.gz # Copy docker-compose.yml to deployment directory @@ -100,10 +90,11 @@ jobs: docker compose exec -T app php artisan view:cache # Cleanup - rm -rf /tmp/merchbay_admin_dev_deploy + rm -f /tmp/merchbay_admin_dev.tar.gz /tmp/docker-compose.yml echo "Development deployment completed successfully!" echo "Application available at: https://dev.merchbay.app" + ENDSSH - name: Health Check run: | diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index d5db9a1..99364f4 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -15,45 +15,33 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Registry (Optional) - if: ${{ secrets.DOCKER_REGISTRY_URL != '' }} - uses: docker/login-action@v2 - with: - registry: ${{ secrets.DOCKER_REGISTRY_URL }} - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} + run: | + git clone ${{ gitea.repository_url }} /workspace/repo || true + cd /workspace/repo + git fetch origin ${{ gitea.ref_name }} + git checkout ${{ gitea.ref_name }} + git pull origin ${{ gitea.ref_name }} - name: Build Docker Image run: | + cd /workspace/repo docker build -t merchbay_admin:latest . - - - name: Save Docker Image - run: | docker save merchbay_admin:latest | gzip > merchbay_admin.tar.gz - - name: Deploy to Server via SSH - uses: appleboy/scp-action@master - with: - host: ${{ secrets.DEPLOY_HOST }} - username: ${{ secrets.DEPLOY_USER }} - key: ${{ secrets.DEPLOY_SSH_KEY }} - port: ${{ secrets.DEPLOY_PORT || 22 }} - source: "merchbay_admin.tar.gz,docker-compose.yml" - target: "/tmp/merchbay_admin_deploy" + - name: Setup SSH Key + run: | + mkdir -p ~/.ssh + echo "${{ secrets.PROD_DEPLOY_SSH_KEY }}" > ~/.ssh/deploy_key + chmod 600 ~/.ssh/deploy_key - - name: Execute Production Deployment Script - uses: appleboy/ssh-action@master - with: - host: ${{ secrets.PROD_DEPLOY_HOST }} - username: ${{ secrets.PROD_DEPLOY_USER }} - key: ${{ secrets.PROD_DEPLOY_SSH_KEY }} - port: ${{ secrets.PROD_DEPLOY_PORT || 22 }} - script: | + - name: Transfer Files to Production Server + run: | + cd /workspace/repo + scp -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key merchbay_admin.tar.gz docker-compose.yml ${{ secrets.PROD_DEPLOY_USER }}@${{ secrets.PROD_DEPLOY_HOST }}:/tmp/ + + - name: Deploy to Production Server + run: | + ssh -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key ${{ secrets.PROD_DEPLOY_USER }}@${{ secrets.PROD_DEPLOY_HOST }} << 'ENDSSH' # Set deployment directory for production DEPLOY_DIR="/var/www/merchbay_admin" @@ -61,7 +49,7 @@ jobs: mkdir -p $DEPLOY_DIR # Load the Docker image - cd /tmp/merchbay_admin_deploy + cd /tmp docker load < merchbay_admin.tar.gz # Copy docker-compose.yml to deployment directory @@ -111,10 +99,11 @@ jobs: docker compose exec -T app php artisan view:cache # Cleanup - rm -rf /tmp/merchbay_admin_deploy + rm -f /tmp/merchbay_admin.tar.gz /tmp/docker-compose.yml echo "Production deployment completed successfully!" echo "Application available at: https://merchbay.com" + ENDSSH - name: Health Check run: |