diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 64433ee..b454024 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -10,45 +10,47 @@ env: IMAGE_NAME: ${{ secrets.PROJECT_NAME }} jobs: - cleaning: - runs-on: go - container: null - steps: - - name: Cleanup - run: | - docker stop $IMAGE_NAME || true - docker rm $IMAGE_NAME || true - docker container prune -f - docker image prune -af + build_and_deploy: + runs-on: ubuntu-latest # Sesuaikan dengan label di compose + container: + image: catthehacker/ubuntu:act-latest + # PENTING: Mounting socket ke dalam container job agar bisa akses Docker Host + volumes: + - /var/run/docker.sock:/var/run/docker.sock - build_image: - runs-on: go - container: null - needs: cleaning steps: - uses: actions/checkout@v4 - - name: Copy env + - name: Setup Environment run: | echo "${{ secrets.ENV_FILE }}" > .env - cat .env - - name: Build & Push + - name: Build Image run: | - docker build -t $REGISTRY/$IMAGE_NAME:${{ gitea.run_number }} . + # Menggunakan --network host agar bisa akses registry di localhost:9999 + docker build --network host -t $REGISTRY/$IMAGE_NAME:${{ gitea.run_number }} . + + - name: Push Image + run: | + # Push ke local registry docker push $REGISTRY/$IMAGE_NAME:${{ gitea.run_number }} - deploy: - runs-on: go - - needs: build_image - steps: - - name: Deploy container + - name: Deploy run: | + # Hapus container lama jika ada + docker stop $IMAGE_NAME || true + docker rm $IMAGE_NAME || true + + # Jalankan container baru di Docker Host docker run -d \ --name $IMAGE_NAME \ - --memory="50m" \ + --memory="64m" \ --cpus="0.1" \ --restart always \ -p 9997:3000 \ $REGISTRY/$IMAGE_NAME:${{ gitea.run_number }} + + - name: Cleanup + if: always() + run: | + docker image prune -f