From 0bd3093408f1592c1269420aa5af8ec4a1517654 Mon Sep 17 00:00:00 2001 From: Jonathan Inge Arvesen Folland Date: Mon, 3 Mar 2025 17:57:53 +0100 Subject: [PATCH] Create deploy.yml --- .github/workflows/deploy.yml | 57 ++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..70d4d60 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,57 @@ +name: Deploy to Development + +on: + push: + branches: + - main + paths: + - '**/*.js' + - '**/*.py' + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Build Docker image + run: | + docker build -t myapp:latest . + + - name: Run Docker container + run: | + docker run -d -p 8080:80 myapp:latest + + deploy: + runs-on: ubuntu-latest + needs: build + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: SSH to server and deploy + run: | + ssh -o StrictHostKeyChecking=no -i ${{ secrets.SSH_PRIVATE_KEY }} user@your-server-ip << 'EOF' + # Pull latest changes from GitHub (optional, if pulling directly) + cd /path/to/your/project + git pull origin main + docker build -t myapp:latest . + docker stop myapp || true + docker rm myapp || true + docker run -d -p 8080:80 --name myapp myapp:latest + EOF + env: + SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}