feat(picsur): add Gitea Actions workflow + named volume
Some checks failed
Picsur Deploy / Validate Picsur Compose (pull_request) Has been cancelled
Picsur Deploy / Deploy Picsur to Dockerino (pull_request) Has been cancelled

- Add workflow .gitea/workflows/picsur.yml
- Migrate from bind mount to named volume (data persists)
- Workflow: PR validates, push to main deploys
This commit is contained in:
gaia 2026-04-09 01:26:22 -03:00
parent 893e7dba7c
commit a4240065e8
2 changed files with 107 additions and 2 deletions

100
.gitea/workflows/picsur.yml Normal file
View File

@ -0,0 +1,100 @@
name: Picsur Deploy
on:
pull_request:
paths:
- 'docker/dockerino/picsur/**'
push:
branches:
- main
paths:
- 'docker/dockerino/picsur/**'
env:
DOCKERINO_HOST: 10.0.0.50
DOCKERINO_USER: root
PICSUR_PATH: /root/dockerino/picsur
jobs:
# ============================================
# JOB 1: VALIDATE (roda em todo PR e Push)
# ============================================
validate:
name: Validate Picsur Compose
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Validate docker-compose syntax
run: |
cd docker/dockerino/picsur
docker compose config --quiet
echo "✅ docker-compose.yml syntax is valid"
- name: Pull image (dry-run)
run: |
cd docker/dockerino/picsur
docker compose pull --quiet
echo "✅ Docker image pull successful"
- name: Show compose file
run: |
echo "📄 docker-compose.yml content:"
cat docker/dockerino/picsur/docker-compose.yml
# ============================================
# JOB 2: DEPLOY (só roda no push to main)
# ============================================
deploy:
name: Deploy Picsur to Dockerino
needs: validate
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
environment: production
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup SSH Key
uses: webfactory/ssh-agent@v0.8.0
with:
ssh-private-key: ${{ secrets.DOCKERINO_SSH_KEY }}
- name: Add Dockerino to known hosts
run: |
ssh-keyscan -H ${{ env.DOCKERINO_HOST }} >> ~/.ssh/known_hosts
- name: Create Picsur directory
run: |
ssh ${{ env.DOCKERINO_USER }}@${{ env.DOCKERINO_HOST }} \
"mkdir -p ${{ env.PICSUR_PATH }}/data"
- name: Sync docker-compose.yml to Dockerino
run: |
rsync -avz --progress \
docker/dockerino/picsur/ \
${{ env.DOCKERINO_USER }}@${{ env.DOCKERINO_HOST }}:${{ env.PICSUR_PATH }}/
- name: Pull latest image on Dockerino
run: |
ssh ${{ env.DOCKERINO_USER }}@${{ env.DOCKERINO_HOST }} \
"cd ${{ env.PICSUR_PATH }} && docker compose pull"
- name: Restart Picsur service
run: |
ssh ${{ env.DOCKERINO_USER }}@${{ env.DOCKERINO_HOST }} \
"cd ${{ env.PICSUR_PATH }} && docker compose up -d"
- name: Verify container is running
run: |
ssh ${{ env.DOCKERINO_USER }}@${{ env.DOCKERINO_HOST }} \
"docker ps --filter name=picsur --format '{{.Names}}: {{.Status}}'"
- name: Report Success
run: |
echo "✅ Picsur deployed successfully!"
echo "🌐 Access: https://picsur.hackerfortress.cc"

View File

@ -8,9 +8,14 @@ services:
ports:
- "8091:8080"
volumes:
- ./data:/data
- picsur-data:/data
environment:
TZ: America/Sao_Paulo
- TZ=America/Sao_Paulo
volumes:
picsur-data:
name: picsur-data
driver: local
networks:
default: