diff --git a/.woodpecker.yml b/.woodpecker.yml index 3569ea4..7892769 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,25 +1,22 @@ -pipeline: - # 1. Build & Push Image ke Gitea Container Registry - # Kita menggunakan plugin/docker agar Woodpecker melakukan build Dockerfile Anda +steps: + # 1. Build & Push Image build-and-push: image: plugins/docker settings: - # URL Gitea Anda registry: git.exavolt.web.id - # Format: git.exavolt.web.id/username/repo-name - repo: git.exavolt.web.id/fikri/fullstack-portfolio + repo: git.exavolt.web.id/fikri/portfolio-app + dockerfile: Dockerfile + use_cache: true + # Gunakan environment otomatis untuk plugin docker username: from_secret: gitea_user password: from_secret: gitea_token - dockerfile: Dockerfile - # Menggunakan cache agar build berikutnya lebih cepat - use_cache: true when: branch: main event: push - # 2. Deploy ke VPS via SSH + # 2. Deploy via SSH deploy: image: appleboy/drone-ssh settings: @@ -28,18 +25,20 @@ pipeline: key: from_secret: ssh_key port: 22 + # Kita kirim variabel gitea ke dalam script SSH + envs: [GITEA_USER, GITEA_TOKEN] script: - # Pindah ke folder tempat docker-compose.yml berada di VPS - - cd ~/portfolio - # Login ke Gitea Registry (diperlukan untuk pull image) + - cd ~/projects/fikri-fullstack-portfolio - echo $GITEA_TOKEN | docker login git.exavolt.web.id -u $GITEA_USER --password-stdin - # Tarik image terbaru yang baru saja di-build - docker compose pull - # Restart container dengan image baru - docker compose up -d --remove-orphans - # Membersihkan image lama yang tidak terpakai (dangling) - docker image prune -f - secrets: [ gitea_user, gitea_token, ssh_key ] + environment: + # Mendefinisikan variabel agar bisa dibaca oleh 'envs' di atas + GITEA_USER: + from_secret: gitea_user + GITEA_TOKEN: + from_secret: gitea_token when: branch: main event: push \ No newline at end of file