diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..8188dca --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,51 @@ +name: Deploy banu-front + +on: + push: + branches: [master] + workflow_dispatch: + +jobs: + deploy: + runs-on: host + env: + IMAGE: banu-front + CONTAINER: banu-front + PORT: "8080" + VITE_API_BASE_URL: http://109.122.252.86/api + VITE_USE_MOCKS: "false" + steps: + - name: Clone repository at current commit + run: | + BUILD_DIR="$(mktemp -d -t banu-front-XXXXXX)" + echo "BUILD_DIR=$BUILD_DIR" >> "$GITHUB_ENV" + git clone http://109.122.252.86:3000/front-end/banu-front.git "$BUILD_DIR" + git -C "$BUILD_DIR" checkout "${{ github.sha }}" + + - name: Build Docker image + run: | + docker build \ + --build-arg VITE_API_BASE_URL="$VITE_API_BASE_URL" \ + --build-arg VITE_USE_MOCKS="$VITE_USE_MOCKS" \ + -t "$IMAGE:${{ github.sha }}" \ + -t "$IMAGE:latest" \ + "$BUILD_DIR" + + - name: Replace running container + run: | + docker rm -f "$CONTAINER" 2>/dev/null || true + docker run -d \ + --name "$CONTAINER" \ + --restart unless-stopped \ + -p "$PORT:80" \ + "$IMAGE:latest" + + - name: Prune dangling images + run: docker image prune -f + + - name: Cleanup build dir + if: always() + run: rm -rf "$BUILD_DIR" + + - name: Show running container + run: docker ps --filter "name=$CONTAINER" --format "table {{.Names}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}"