62 lines
1.7 KiB
YAML
62 lines
1.7 KiB
YAML
# .pipeline.yml
|
|
# -----------------
|
|
|
|
when:
|
|
event: [ push, pull_request ]
|
|
|
|
steps:
|
|
- name: publish-image
|
|
image: woodpeckerci/plugin-docker-buildx
|
|
settings:
|
|
platforms: linux/amd64
|
|
repo: git.badger-pirarucu.ts.net/mangamochi/frontend
|
|
registry: git.badger-pirarucu.ts.net
|
|
dockerfile: Dockerfile
|
|
context: .
|
|
username:
|
|
from_secret: DOCKER_USER
|
|
password:
|
|
from_secret: DOCKER_PASSWORD
|
|
build_args:
|
|
VITE_API_BASE_URL:
|
|
from_secret: NEXT_PUBLIC_API_BASE_URL
|
|
VITE_OMV_BASE_URL:
|
|
from_secret: NEXT_PUBLIC_OMV_BASE_URL
|
|
tags:
|
|
- latest
|
|
- ${CI_COMMIT_SHA}
|
|
when:
|
|
event: [ push ]
|
|
branch: [ main ]
|
|
|
|
- name: deploy
|
|
depends_on: [ publish-image ]
|
|
image: alpine:3.20
|
|
environment:
|
|
DEPLOY_USER: rov
|
|
DEPLOY_HOST: mangamochi.badger-pirarucu.ts.net
|
|
DEPLOY_PORT: 22
|
|
IMAGE: git.badger-pirarucu.ts.net/mangamochi/frontend:${CI_COMMIT_SHA}
|
|
DEPLOY_SSH_KEY:
|
|
from_secret: DEPLOY_SSH_KEY
|
|
commands:
|
|
- echo "🚀 Deploying Next.js app to $DEPLOY_HOST...."
|
|
- apk add --no-cache openssh-client docker-cli
|
|
- mkdir -p ~/.ssh
|
|
- echo "$DEPLOY_SSH_KEY" > ~/.ssh/id_rsa
|
|
- chmod 600 ~/.ssh/id_rsa
|
|
- ssh-keyscan -p $DEPLOY_PORT $DEPLOY_HOST >> ~/.ssh/known_hosts
|
|
- >
|
|
ssh -p $DEPLOY_PORT $DEPLOY_USER@$DEPLOY_HOST "
|
|
docker pull $IMAGE &&
|
|
docker stop mangamochi-frontend 2>/dev/null || true &&
|
|
docker rm mangamochi-frontend 2>/dev/null || true &&
|
|
docker run -d --name mangamochi-frontend \
|
|
--restart always \
|
|
-p 80:80 \
|
|
$IMAGE
|
|
"
|
|
when:
|
|
event: [ push ]
|
|
branch: [ main ]
|