diff --git a/.gitea/workflows/nightly.yaml b/.gitea/workflows/nightly.yaml index 8f991e9..bd5770d 100644 --- a/.gitea/workflows/nightly.yaml +++ b/.gitea/workflows/nightly.yaml @@ -26,6 +26,7 @@ jobs: - 'Cargo.lock' - 'scripts/**' - '.cargo/**' + - 'Dockerfile' - '.gitea/workflows/nightly.yaml' build-and-publish: @@ -169,3 +170,34 @@ jobs: --upload-file "$pkg" \ "${GITEA_URL}/api/packages/${REPO_OWNER}/arch/nightly" done + + - name: Build and Publish Docker Container Image (Nightly) + env: + GITEA_URL: ${{ gitea.server_url || github.server_url }} + REPO: ${{ gitea.repository || github.repository }} + REPO_OWNER: ${{ gitea.repository_owner || github.repository_owner }} + REPO_NAME: ${{ gitea.repository_name || github.event.repository.name }} + TOKEN: ${{ secrets.PACKAGE_TOKEN || secrets.RELEASE_TOKEN || secrets.PUBLISH_TOKEN || secrets.API_TOKEN || secrets.PAT_TOKEN || secrets.CUSTOM_TOKEN || secrets.GITEA_TOKEN || secrets.GITHUB_TOKEN || github.token }} + run: | + VERSION="$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -n1)" + REGISTRY_HOST=$(echo "${GITEA_URL}" | sed -E 's|^https?://||; s|/.*$||') + IMAGE_NAME=$(echo "${REGISTRY_HOST}/${REPO_OWNER}/${REPO_NAME}" | tr '[:upper:]' '[:lower:]') + + echo "Authentifiziere an der Container Registry ${REGISTRY_HOST}..." + echo "${TOKEN}" | docker login "${REGISTRY_HOST}" -u "${REPO_OWNER}" --password-stdin + + echo "Baue Docker-Container Image (Nightly)..." + docker build \ + --build-arg TARGET_BIN=target/x86_64-unknown-linux-gnu/release/mirror-package \ + -t "${IMAGE_NAME}:nightly" \ + -t "${IMAGE_NAME}:${VERSION}-nightly" \ + -t "${IMAGE_NAME}:${VERSION}-nightly.${BUILD_NUMBER}" \ + -t "${IMAGE_NAME}:nightly-${BUILD_NUMBER}" \ + . + + echo "Veröffentliche Docker-Images nach ${IMAGE_NAME}..." + docker push "${IMAGE_NAME}:nightly" + docker push "${IMAGE_NAME}:${VERSION}-nightly" + docker push "${IMAGE_NAME}:${VERSION}-nightly.${BUILD_NUMBER}" + docker push "${IMAGE_NAME}:nightly-${BUILD_NUMBER}" + echo "Docker-Images (Nightly) erfolgreich veröffentlicht."