--- kind: pipeline type: kubernetes name: build steps: - name: build image: mgoltzsche/podman:5.2.3 privileged: true environment: REGISTRY_USERNAME: from_secret: registry_username REGISTRY_PASSWORD: from_secret: registry_password REGISTRY_SERVER: "docker.io" RELEASE_IMAGE_NAME: "docker.io/genunix/homeassistant" commands: - | HASS_VERSION=$$(grep FROM Dockerfile|cut -d : -f 2) podman login --username "$${REGISTRY_USERNAME}" --password "$${REGISTRY_PASSWORD}" "$${REGISTRY_SERVER}" echo "== Building $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA}" podman build --pull-always --format docker -t $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} . echo "== Publishing $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA}" podman push $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} docker://$${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} podman push $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} docker://$${RELEASE_IMAGE_NAME}:$${HASS_VERSION} podman logout "$${REGISTRY_SERVER}" volumes: - name: containers path: /var/lib/containers when: branch: - master - name: cleanup image: mgoltzsche/podman:5.2.3 privileged: true environment: RELEASE_IMAGE_NAME: "docker.io/genunix/homeassistant" commands: - podman rmi -f $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} - podman image prune -f volumes: - name: containers path: /var/lib/containers when: branch: - master trigger: event: - push - custom volumes: - name: containers host: path: /var/lib/containers --- kind: pipeline type: kubernetes name: promote steps: - name: promote image: mgoltzsche/podman:5.2.3 privileged: true environment: REGISTRY_USERNAME: from_secret: registry_username REGISTRY_PASSWORD: from_secret: registry_password REGISTRY_SERVER: "docker.io" RELEASE_IMAGE_NAME: "docker.io/genunix/homeassistant" commands: - podman login --username "$${REGISTRY_USERNAME}" --password "$${REGISTRY_PASSWORD}" "$${REGISTRY_SERVER}" - echo "== Promoting $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} into production" - podman pull docker://$${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} - podman push $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} docker://$${RELEASE_IMAGE_NAME}:latest - podman logout "$${REGISTRY_SERVER}" volumes: - name: containers path: /var/lib/containers - name: cleanup image: mgoltzsche/podman:5.2.3 privileged: true environment: RELEASE_IMAGE_NAME: "docker.io/genunix/homeassistant" commands: - podman rmi -f $${RELEASE_IMAGE_NAME}:$${DRONE_COMMIT_SHA} - podman rmi -f $${RELEASE_IMAGE_NAME}:latest - podman image prune -f volumes: - name: containers path: /var/lib/containers when: branch: - master - name: deploy image: bitnami/kubectl:1.31 environment: KUBECONFIG: from_secret: kubeconfig commands: - echo "$${KUBECONFIG}" > kubeconfig - kubectl --kubeconfig=kubeconfig -n hass rollout restart deployment/hass - kubectl --kubeconfig=kubeconfig -n hass rollout status deployment/hass trigger: event: - promote target: - production volumes: - name: containers host: path: /var/lib/containers