Update .yml files and README.md

This commit is contained in:
Keannu Christian Bernasol 2025-09-01 14:49:59 +08:00
parent 6b999b8298
commit 30eea7e784
4 changed files with 136 additions and 5 deletions

54
.woodpecker/,deploy.yml Normal file
View file

@ -0,0 +1,54 @@
# Deployment YML for Woodpecker CI/CD
# Ephemeral volumes - Data is not persisted across deployments (i.e. database volume)
# Remove line 29 for persistent volumes
steps:
- name: deploy
image: alpine:3.20
environment:
SSH_HOST:
from_secret: SSH_HOST
PROJECT_DIRECTORY:
from_secret: PROJECT_DIRECTORY
SSH_KEY:
from_secret: SSH_KEY
REGISTRY_IMAGE_TAG:
from_secret: REGISTRY_IMAGE_TAG
DOCKER_VOLUME_DB:
from_secret: DOCKER_VOLUME_DB
commands:
- apk add openssh
- mkdir -p /root/.ssh/
- echo "$SSH_KEY" | tr -d '\r' > /root/.ssh/id_rsa
- chmod 600 /root/.ssh/id_rsa
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > /root/.ssh/config
- ssh "$SSH_HOST" "
cd "$PROJECT_DIRECTORY";
docker-compose down;
docker image rm "$REGISTRY_IMAGE_TAG" || true;
docker volume rm "$DOCKER_VOLUME_DB" || true;
wget -O "$DOCKER_COMPOSE_URL" docker-compose.yml;
docker pull "$REGISTRY_IMAGE_TAG";
docker-compose up -d;
docker image prune -af;"
- name: discord
image: appleboy/drone-discord
settings:
webhook_id:
from_secret: DISCORD_WEBHOOK_ID
webhook_token:
from_secret: DISCORD_WEBHOOK_TOKEN
message: >
{{#success build.status}}
{{repo.name}} deployment #{{build.number}} {{build.status}}
{{/success}}
depends_on: deploy
when:
- branch: master
event:
- push
- manual
depends_on:
- build

41
.woodpecker/.build.yml Normal file
View file

@ -0,0 +1,41 @@
# Build YML for Woodpecker CI/CD
labels:
platform: linux/amd64
steps:
- name: build
image: docker
environment:
FORGEJO_REGISTRY_URL:
from_secret: FORGEJO_REGISTRY_URL
FORGEJO_REGISTRY_USERNAME:
from_secret: FORGEJO_REGISTRY_USERNAME
FORGEJO_REGISTRY_PASSWORD:
from_secret: FORGEJO_REGISTRY_PASSWORD
REGISTRY_IMAGE_TAG:
from_secret: REGISTRY_IMAGE_TAG
commands:
- docker build -t "$REGISTRY_IMAGE_TAG" .
- echo "$FORGEJO_REGISTRY_PASSWORD" | docker login "$FORGEJO_REGISTRY_URL" --password-stdin -u "$FORGEJO_REGISTRY_USERNAME"
- docker push "$REGISTRY_IMAGE_TAG"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- name: discord
image: appleboy/drone-discord
settings:
webhook_id:
from_secret: DISCORD_WEBHOOK_ID
webhook_token:
from_secret: DISCORD_WEBHOOK_TOKEN
message: >
{{#success build.status}}
{{repo.name}} build #{{build.number}} {{build.status}}
{{/success}}
depends_on: build
when:
- branch: master
event:
- push
- manual

View file

@ -1,3 +1,6 @@
# Deployment file for Woodpecker CI/CD
# No volumes - Suited for deployments without local databases (i.e. external PostgreSQL instance)
steps:
- name: deploy
image: alpine:3.20
@ -20,15 +23,17 @@ steps:
cd "$PROJECT_DIRECTORY";
docker-compose down;
docker image rm "$REGISTRY_IMAGE_TAG" || true;
git restore . && git pull origin "$CI_COMMIT_BRANCH";
docker-compose up -d;"
wget -O "$DOCKER_COMPOSE_URL" docker-compose.yml;
docker pull "$REGISTRY_IMAGE_TAG";
docker-compose up -d;
docker image prune -af;"
- name: discord
image: appleboy/drone-discord
settings:
webhook_id:
from_secret: SERVICE_QUEUE_DISCORD_WEBHOOK_ID
from_secret: DISCORD_WEBHOOK_ID
webhook_token:
from_secret: SERVICE_QUEUE_DISCORD_WEBHOOK_TOKEN
from_secret: DISCORD_WEBHOOK_TOKEN
message: >
{{#success build.status}}
{{repo.name}} deployment #{{build.number}} {{build.status}}
@ -36,7 +41,10 @@ steps:
depends_on: deploy
when:
- branch: main # Update branch name accordingly
- branch: master
event:
- push
- manual
depends_on:
- build