steps: build: image: docker:24-dind environment: DOCKER_BUILDKIT: 1 commands: - echo "🔨 Building Docker image..." - docker buildx create --use --name builder || true - docker buildx build \ --platform linux/amd64 \ --build-arg VERSION=${CI_COMMIT_SHA:0:8} \ --build-arg BUILD_DATE=${CI_PIPELINE_CREATED} \ --build-arg PYTHON_VERSION=3.11 \ --build-arg NODE_VERSION=20 \ --label org.opencontainers.image.created=${CI_PIPELINE_CREATED} \ --label org.opencontainers.image.source=${CI_REPO_LINK} \ --label org.opencontainers.image.url=${CI_REPO_LINK} \ --label org.opencontainers.image.revision=${CI_COMMIT_SHA} \ --label org.opencontainers.image.version=${CI_COMMIT_SHA:0:8} \ --label org.opencontainers.image.title="Peikarband Landing" \ --label org.opencontainers.image.description="Peikarband hosting platform landing page" \ --tag hub.peikarband.ir/peikarband/landing:${CI_COMMIT_SHA:0:8} \ --tag hub.peikarband.ir/peikarband/landing:latest \ --load \ --file Dockerfile \ . - echo "✅ Build completed" volumes: - /var/run/docker.sock:/var/run/docker.sock timeout: 30m when: event: [push, tag, manual] push: image: docker:24-dind environment: DOCKER_BUILDKIT: 1 commands: - echo "📤 Pushing Docker image..." - echo $${HARBOR_PASSWORD} | docker login hub.peikarband.ir -u $${HARBOR_USERNAME} --password-stdin - docker push hub.peikarband.ir/peikarband/landing:${CI_COMMIT_SHA:0:8} - docker push hub.peikarband.ir/peikarband/landing:latest - echo "✅ Push completed" secrets: - HARBOR_USERNAME - HARBOR_PASSWORD volumes: - /var/run/docker.sock:/var/run/docker.sock timeout: 10m when: event: [push, tag, manual]