mirror of https://github.com/grafana/loki
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
515 lines
21 KiB
515 lines
21 KiB
"jobs":
|
|
"check":
|
|
"uses": "grafana/loki-release/.github/workflows/check.yml@83e166f5c8795fa94dec9f4cbdb82205fbb8bf2b"
|
|
"with":
|
|
"build_image": "grafana/loki-build-image:0.34.7"
|
|
"golang_ci_lint_version": "v2.5.0"
|
|
"release_lib_ref": "83e166f5c8795fa94dec9f4cbdb82205fbb8bf2b"
|
|
"skip_validation": false
|
|
"use_github_app_token": true
|
|
"loki-canary-boringcrypto-image":
|
|
"env":
|
|
"BUILD_TIMEOUT": 60
|
|
"GO_VERSION": "1.24.8"
|
|
"IMAGE_PREFIX": "grafana"
|
|
"RELEASE_LIB_REF": "83e166f5c8795fa94dec9f4cbdb82205fbb8bf2b"
|
|
"RELEASE_REPO": "grafana/loki"
|
|
"needs":
|
|
- "check"
|
|
"outputs":
|
|
"image_digest_linux_amd64": "${{ steps.digest.outputs.digest_linux_amd64 }}"
|
|
"image_digest_linux_arm": "${{ steps.digest.outputs.digest_linux_arm }}"
|
|
"image_digest_linux_arm64": "${{ steps.digest.outputs.digest_linux_arm64 }}"
|
|
"image_name": "${{ steps.weekly-version.outputs.image_name }}"
|
|
"image_tag": "${{ steps.weekly-version.outputs.image_version }}"
|
|
"permissions":
|
|
"contents": "read"
|
|
"id-token": "write"
|
|
"runs-on": "${{ matrix.runs_on }}"
|
|
"steps":
|
|
- "name": "pull release library code"
|
|
"uses": "actions/checkout@v4"
|
|
"with":
|
|
"path": "lib"
|
|
"persist-credentials": false
|
|
"ref": "${{ env.RELEASE_LIB_REF }}"
|
|
"repository": "grafana/loki-release"
|
|
- "name": "pull code to release"
|
|
"uses": "actions/checkout@v4"
|
|
"with":
|
|
"path": "release"
|
|
"persist-credentials": false
|
|
"repository": "${{ env.RELEASE_REPO }}"
|
|
- "name": "setup node"
|
|
"uses": "actions/setup-node@v4"
|
|
"with":
|
|
"node-version": 20
|
|
"package-manager-cache": false
|
|
- "name": "Set up Docker buildx"
|
|
"uses": "docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2"
|
|
- "name": "Login to DockerHub (from Vault)"
|
|
"uses": "grafana/shared-workflows/actions/dockerhub-login@fa48192dac470ae356b3f7007229f3ac28c48a25"
|
|
- "id": "weekly-version"
|
|
"name": "Get weekly version"
|
|
"run": |
|
|
version=$(./tools/image-tag)
|
|
echo "image_version=$version" >> $GITHUB_OUTPUT
|
|
echo "image_name=${{ env.IMAGE_PREFIX }}/loki-canary-boringcrypto" >> $GITHUB_OUTPUT
|
|
echo "image_full_name=${{ env.IMAGE_PREFIX }}/loki-canary-boringcrypto:$version" >> $GITHUB_OUTPUT
|
|
"working-directory": "release"
|
|
- "id": "platform"
|
|
"name": "Parse image platform"
|
|
"run": |
|
|
platform="$(echo "${{ matrix.arch }}" | sed "s/\(.*\)\/\(.*\)/\1-\2/")"
|
|
echo "platform=${platform}" >> $GITHUB_OUTPUT
|
|
echo "platform_short=$(echo ${{ matrix.arch }} | cut -d / -f 2)" >> $GITHUB_OUTPUT
|
|
"working-directory": "release"
|
|
- "id": "build-push"
|
|
"name": "Build and push"
|
|
"timeout-minutes": "${{ fromJSON(env.BUILD_TIMEOUT) }}"
|
|
"uses": "docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1"
|
|
"with":
|
|
"build-args": |
|
|
IMAGE_TAG=${{ steps.weekly-version.outputs.image_version }}
|
|
GO_VERSION=${{ env.GO_VERSION }}
|
|
"context": "release"
|
|
"file": "release/cmd/loki-canary-boringcrypto/Dockerfile"
|
|
"outputs": "push-by-digest=true,type=image,name=${{ steps.weekly-version.outputs.image_name }},push=true"
|
|
"platforms": "${{ matrix.arch }}"
|
|
"provenance": true
|
|
"tags": "${{ steps.weekly-version.outputs.image_name }}"
|
|
- "env":
|
|
"OUTPUTS_DIGEST": "${{ steps.build-push.outputs.digest }}"
|
|
"id": "digest"
|
|
"name": "Process image digest"
|
|
"run": |
|
|
arch=$(echo ${{ matrix.arch }} | tr "/" "_")
|
|
echo "digest_$arch=$OUTPUTS_DIGEST" >> $GITHUB_OUTPUT
|
|
"working-directory": "release"
|
|
"strategy":
|
|
"fail-fast": true
|
|
"matrix":
|
|
"include":
|
|
- "arch": "linux/amd64"
|
|
"runs_on":
|
|
- "github-hosted-ubuntu-x64-small"
|
|
- "arch": "linux/arm64"
|
|
"runs_on":
|
|
- "github-hosted-ubuntu-arm64-small"
|
|
- "arch": "linux/arm"
|
|
"runs_on":
|
|
- "github-hosted-ubuntu-arm64-small"
|
|
"loki-canary-boringcrypto-manifest":
|
|
"env":
|
|
"BUILD_TIMEOUT": 60
|
|
"IMAGE_DIGEST_AMD64": "${{ needs.loki-canary-boringcrypto-image.outputs.image_digest_linux_amd64 }}"
|
|
"IMAGE_DIGEST_ARM": "${{ needs.loki-canary-boringcrypto-image.outputs.image_digest_linux_arm }}"
|
|
"IMAGE_DIGEST_ARM64": "${{ needs.loki-canary-boringcrypto-image.outputs.image_digest_linux_arm64 }}"
|
|
"OUTPUTS_IMAGE_NAME": "${{ needs.loki-canary-boringcrypto-image.outputs.image_name }}"
|
|
"OUTPUTS_IMAGE_TAG": "${{ needs.loki-canary-boringcrypto-image.outputs.image_tag }}"
|
|
"needs":
|
|
- "loki-canary-boringcrypto-image"
|
|
"permissions":
|
|
"contents": "read"
|
|
"id-token": "write"
|
|
"runs-on": "ubuntu-latest"
|
|
"steps":
|
|
- "name": "Set up Docker buildx"
|
|
"uses": "docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2"
|
|
- "name": "Login to DockerHub (from Vault)"
|
|
"uses": "grafana/shared-workflows/actions/dockerhub-login@75804962c1ba608148988c1e2dc35fbb0ee21746"
|
|
- "name": "Publish multi-arch manifest"
|
|
"run": |
|
|
# Unfortunately there is no better way atm than having a separate named output for each digest
|
|
echo "linux/arm64 $IMAGE_DIGEST_ARM64"
|
|
echo "linux/amd64 $IMAGE_DIGEST_AMD64"
|
|
echo "linux/arm $IMAGE_DIGEST_ARM"
|
|
IMAGE="${OUTPUTS_IMAGE_NAME}:${OUTPUTS_IMAGE_TAG}"
|
|
echo "Create multi-arch manifest for $IMAGE"
|
|
docker buildx imagetools create -t $IMAGE \
|
|
${OUTPUTS_IMAGE_NAME}@${IMAGE_DIGEST_ARM64} \
|
|
${OUTPUTS_IMAGE_NAME}@${IMAGE_DIGEST_AMD64} \
|
|
${OUTPUTS_IMAGE_NAME}@${IMAGE_DIGEST_ARM}
|
|
docker buildx imagetools inspect $IMAGE
|
|
"loki-canary-image":
|
|
"env":
|
|
"BUILD_TIMEOUT": 60
|
|
"GO_VERSION": "1.24.8"
|
|
"IMAGE_PREFIX": "grafana"
|
|
"RELEASE_LIB_REF": "83e166f5c8795fa94dec9f4cbdb82205fbb8bf2b"
|
|
"RELEASE_REPO": "grafana/loki"
|
|
"needs":
|
|
- "check"
|
|
"outputs":
|
|
"image_digest_linux_amd64": "${{ steps.digest.outputs.digest_linux_amd64 }}"
|
|
"image_digest_linux_arm": "${{ steps.digest.outputs.digest_linux_arm }}"
|
|
"image_digest_linux_arm64": "${{ steps.digest.outputs.digest_linux_arm64 }}"
|
|
"image_name": "${{ steps.weekly-version.outputs.image_name }}"
|
|
"image_tag": "${{ steps.weekly-version.outputs.image_version }}"
|
|
"permissions":
|
|
"contents": "read"
|
|
"id-token": "write"
|
|
"runs-on": "${{ matrix.runs_on }}"
|
|
"steps":
|
|
- "name": "pull release library code"
|
|
"uses": "actions/checkout@v4"
|
|
"with":
|
|
"path": "lib"
|
|
"persist-credentials": false
|
|
"ref": "${{ env.RELEASE_LIB_REF }}"
|
|
"repository": "grafana/loki-release"
|
|
- "name": "pull code to release"
|
|
"uses": "actions/checkout@v4"
|
|
"with":
|
|
"path": "release"
|
|
"persist-credentials": false
|
|
"repository": "${{ env.RELEASE_REPO }}"
|
|
- "name": "setup node"
|
|
"uses": "actions/setup-node@v4"
|
|
"with":
|
|
"node-version": 20
|
|
"package-manager-cache": false
|
|
- "name": "Set up Docker buildx"
|
|
"uses": "docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2"
|
|
- "name": "Login to DockerHub (from Vault)"
|
|
"uses": "grafana/shared-workflows/actions/dockerhub-login@fa48192dac470ae356b3f7007229f3ac28c48a25"
|
|
- "id": "weekly-version"
|
|
"name": "Get weekly version"
|
|
"run": |
|
|
version=$(./tools/image-tag)
|
|
echo "image_version=$version" >> $GITHUB_OUTPUT
|
|
echo "image_name=${{ env.IMAGE_PREFIX }}/loki-canary" >> $GITHUB_OUTPUT
|
|
echo "image_full_name=${{ env.IMAGE_PREFIX }}/loki-canary:$version" >> $GITHUB_OUTPUT
|
|
"working-directory": "release"
|
|
- "id": "platform"
|
|
"name": "Parse image platform"
|
|
"run": |
|
|
platform="$(echo "${{ matrix.arch }}" | sed "s/\(.*\)\/\(.*\)/\1-\2/")"
|
|
echo "platform=${platform}" >> $GITHUB_OUTPUT
|
|
echo "platform_short=$(echo ${{ matrix.arch }} | cut -d / -f 2)" >> $GITHUB_OUTPUT
|
|
"working-directory": "release"
|
|
- "id": "build-push"
|
|
"name": "Build and push"
|
|
"timeout-minutes": "${{ fromJSON(env.BUILD_TIMEOUT) }}"
|
|
"uses": "docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1"
|
|
"with":
|
|
"build-args": |
|
|
IMAGE_TAG=${{ steps.weekly-version.outputs.image_version }}
|
|
GO_VERSION=${{ env.GO_VERSION }}
|
|
"context": "release"
|
|
"file": "release/cmd/loki-canary/Dockerfile"
|
|
"outputs": "push-by-digest=true,type=image,name=${{ steps.weekly-version.outputs.image_name }},push=true"
|
|
"platforms": "${{ matrix.arch }}"
|
|
"provenance": true
|
|
"tags": "${{ steps.weekly-version.outputs.image_name }}"
|
|
- "env":
|
|
"OUTPUTS_DIGEST": "${{ steps.build-push.outputs.digest }}"
|
|
"id": "digest"
|
|
"name": "Process image digest"
|
|
"run": |
|
|
arch=$(echo ${{ matrix.arch }} | tr "/" "_")
|
|
echo "digest_$arch=$OUTPUTS_DIGEST" >> $GITHUB_OUTPUT
|
|
"working-directory": "release"
|
|
"strategy":
|
|
"fail-fast": true
|
|
"matrix":
|
|
"include":
|
|
- "arch": "linux/amd64"
|
|
"runs_on":
|
|
- "github-hosted-ubuntu-x64-small"
|
|
- "arch": "linux/arm64"
|
|
"runs_on":
|
|
- "github-hosted-ubuntu-arm64-small"
|
|
- "arch": "linux/arm"
|
|
"runs_on":
|
|
- "github-hosted-ubuntu-arm64-small"
|
|
"loki-canary-manifest":
|
|
"env":
|
|
"BUILD_TIMEOUT": 60
|
|
"IMAGE_DIGEST_AMD64": "${{ needs.loki-canary-image.outputs.image_digest_linux_amd64 }}"
|
|
"IMAGE_DIGEST_ARM": "${{ needs.loki-canary-image.outputs.image_digest_linux_arm }}"
|
|
"IMAGE_DIGEST_ARM64": "${{ needs.loki-canary-image.outputs.image_digest_linux_arm64 }}"
|
|
"OUTPUTS_IMAGE_NAME": "${{ needs.loki-canary-image.outputs.image_name }}"
|
|
"OUTPUTS_IMAGE_TAG": "${{ needs.loki-canary-image.outputs.image_tag }}"
|
|
"needs":
|
|
- "loki-canary-image"
|
|
"permissions":
|
|
"contents": "read"
|
|
"id-token": "write"
|
|
"runs-on": "ubuntu-latest"
|
|
"steps":
|
|
- "name": "Set up Docker buildx"
|
|
"uses": "docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2"
|
|
- "name": "Login to DockerHub (from Vault)"
|
|
"uses": "grafana/shared-workflows/actions/dockerhub-login@75804962c1ba608148988c1e2dc35fbb0ee21746"
|
|
- "name": "Publish multi-arch manifest"
|
|
"run": |
|
|
# Unfortunately there is no better way atm than having a separate named output for each digest
|
|
echo "linux/arm64 $IMAGE_DIGEST_ARM64"
|
|
echo "linux/amd64 $IMAGE_DIGEST_AMD64"
|
|
echo "linux/arm $IMAGE_DIGEST_ARM"
|
|
IMAGE="${OUTPUTS_IMAGE_NAME}:${OUTPUTS_IMAGE_TAG}"
|
|
echo "Create multi-arch manifest for $IMAGE"
|
|
docker buildx imagetools create -t $IMAGE \
|
|
${OUTPUTS_IMAGE_NAME}@${IMAGE_DIGEST_ARM64} \
|
|
${OUTPUTS_IMAGE_NAME}@${IMAGE_DIGEST_AMD64} \
|
|
${OUTPUTS_IMAGE_NAME}@${IMAGE_DIGEST_ARM}
|
|
docker buildx imagetools inspect $IMAGE
|
|
"loki-image":
|
|
"env":
|
|
"BUILD_TIMEOUT": 60
|
|
"GO_VERSION": "1.24.8"
|
|
"IMAGE_PREFIX": "grafana"
|
|
"RELEASE_LIB_REF": "83e166f5c8795fa94dec9f4cbdb82205fbb8bf2b"
|
|
"RELEASE_REPO": "grafana/loki"
|
|
"needs":
|
|
- "check"
|
|
"outputs":
|
|
"image_digest_linux_amd64": "${{ steps.digest.outputs.digest_linux_amd64 }}"
|
|
"image_digest_linux_arm": "${{ steps.digest.outputs.digest_linux_arm }}"
|
|
"image_digest_linux_arm64": "${{ steps.digest.outputs.digest_linux_arm64 }}"
|
|
"image_name": "${{ steps.weekly-version.outputs.image_name }}"
|
|
"image_tag": "${{ steps.weekly-version.outputs.image_version }}"
|
|
"permissions":
|
|
"contents": "read"
|
|
"id-token": "write"
|
|
"runs-on": "${{ matrix.runs_on }}"
|
|
"steps":
|
|
- "name": "pull release library code"
|
|
"uses": "actions/checkout@v4"
|
|
"with":
|
|
"path": "lib"
|
|
"persist-credentials": false
|
|
"ref": "${{ env.RELEASE_LIB_REF }}"
|
|
"repository": "grafana/loki-release"
|
|
- "name": "pull code to release"
|
|
"uses": "actions/checkout@v4"
|
|
"with":
|
|
"path": "release"
|
|
"persist-credentials": false
|
|
"repository": "${{ env.RELEASE_REPO }}"
|
|
- "name": "setup node"
|
|
"uses": "actions/setup-node@v4"
|
|
"with":
|
|
"node-version": 20
|
|
"package-manager-cache": false
|
|
- "name": "Set up Docker buildx"
|
|
"uses": "docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2"
|
|
- "name": "Login to DockerHub (from Vault)"
|
|
"uses": "grafana/shared-workflows/actions/dockerhub-login@fa48192dac470ae356b3f7007229f3ac28c48a25"
|
|
- "id": "weekly-version"
|
|
"name": "Get weekly version"
|
|
"run": |
|
|
version=$(./tools/image-tag)
|
|
echo "image_version=$version" >> $GITHUB_OUTPUT
|
|
echo "image_name=${{ env.IMAGE_PREFIX }}/loki" >> $GITHUB_OUTPUT
|
|
echo "image_full_name=${{ env.IMAGE_PREFIX }}/loki:$version" >> $GITHUB_OUTPUT
|
|
"working-directory": "release"
|
|
- "id": "platform"
|
|
"name": "Parse image platform"
|
|
"run": |
|
|
platform="$(echo "${{ matrix.arch }}" | sed "s/\(.*\)\/\(.*\)/\1-\2/")"
|
|
echo "platform=${platform}" >> $GITHUB_OUTPUT
|
|
echo "platform_short=$(echo ${{ matrix.arch }} | cut -d / -f 2)" >> $GITHUB_OUTPUT
|
|
"working-directory": "release"
|
|
- "id": "build-push"
|
|
"name": "Build and push"
|
|
"timeout-minutes": "${{ fromJSON(env.BUILD_TIMEOUT) }}"
|
|
"uses": "docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1"
|
|
"with":
|
|
"build-args": |
|
|
IMAGE_TAG=${{ steps.weekly-version.outputs.image_version }}
|
|
GO_VERSION=${{ env.GO_VERSION }}
|
|
"context": "release"
|
|
"file": "release/cmd/loki/Dockerfile"
|
|
"outputs": "push-by-digest=true,type=image,name=${{ steps.weekly-version.outputs.image_name }},push=true"
|
|
"platforms": "${{ matrix.arch }}"
|
|
"provenance": true
|
|
"tags": "${{ steps.weekly-version.outputs.image_name }}"
|
|
- "env":
|
|
"OUTPUTS_DIGEST": "${{ steps.build-push.outputs.digest }}"
|
|
"id": "digest"
|
|
"name": "Process image digest"
|
|
"run": |
|
|
arch=$(echo ${{ matrix.arch }} | tr "/" "_")
|
|
echo "digest_$arch=$OUTPUTS_DIGEST" >> $GITHUB_OUTPUT
|
|
"working-directory": "release"
|
|
"strategy":
|
|
"fail-fast": true
|
|
"matrix":
|
|
"include":
|
|
- "arch": "linux/amd64"
|
|
"runs_on":
|
|
- "github-hosted-ubuntu-x64-small"
|
|
- "arch": "linux/arm64"
|
|
"runs_on":
|
|
- "github-hosted-ubuntu-arm64-small"
|
|
- "arch": "linux/arm"
|
|
"runs_on":
|
|
- "github-hosted-ubuntu-arm64-small"
|
|
"loki-manifest":
|
|
"env":
|
|
"BUILD_TIMEOUT": 60
|
|
"IMAGE_DIGEST_AMD64": "${{ needs.loki-image.outputs.image_digest_linux_amd64 }}"
|
|
"IMAGE_DIGEST_ARM": "${{ needs.loki-image.outputs.image_digest_linux_arm }}"
|
|
"IMAGE_DIGEST_ARM64": "${{ needs.loki-image.outputs.image_digest_linux_arm64 }}"
|
|
"OUTPUTS_IMAGE_NAME": "${{ needs.loki-image.outputs.image_name }}"
|
|
"OUTPUTS_IMAGE_TAG": "${{ needs.loki-image.outputs.image_tag }}"
|
|
"needs":
|
|
- "loki-image"
|
|
"permissions":
|
|
"contents": "read"
|
|
"id-token": "write"
|
|
"runs-on": "ubuntu-latest"
|
|
"steps":
|
|
- "name": "Set up Docker buildx"
|
|
"uses": "docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2"
|
|
- "name": "Login to DockerHub (from Vault)"
|
|
"uses": "grafana/shared-workflows/actions/dockerhub-login@75804962c1ba608148988c1e2dc35fbb0ee21746"
|
|
- "name": "Publish multi-arch manifest"
|
|
"run": |
|
|
# Unfortunately there is no better way atm than having a separate named output for each digest
|
|
echo "linux/arm64 $IMAGE_DIGEST_ARM64"
|
|
echo "linux/amd64 $IMAGE_DIGEST_AMD64"
|
|
echo "linux/arm $IMAGE_DIGEST_ARM"
|
|
IMAGE="${OUTPUTS_IMAGE_NAME}:${OUTPUTS_IMAGE_TAG}"
|
|
echo "Create multi-arch manifest for $IMAGE"
|
|
docker buildx imagetools create -t $IMAGE \
|
|
${OUTPUTS_IMAGE_NAME}@${IMAGE_DIGEST_ARM64} \
|
|
${OUTPUTS_IMAGE_NAME}@${IMAGE_DIGEST_AMD64} \
|
|
${OUTPUTS_IMAGE_NAME}@${IMAGE_DIGEST_ARM}
|
|
docker buildx imagetools inspect $IMAGE
|
|
"promtail-image":
|
|
"env":
|
|
"BUILD_TIMEOUT": 60
|
|
"GO_VERSION": "1.24.8"
|
|
"IMAGE_PREFIX": "grafana"
|
|
"RELEASE_LIB_REF": "83e166f5c8795fa94dec9f4cbdb82205fbb8bf2b"
|
|
"RELEASE_REPO": "grafana/loki"
|
|
"needs":
|
|
- "check"
|
|
"outputs":
|
|
"image_digest_linux_amd64": "${{ steps.digest.outputs.digest_linux_amd64 }}"
|
|
"image_digest_linux_arm": "${{ steps.digest.outputs.digest_linux_arm }}"
|
|
"image_digest_linux_arm64": "${{ steps.digest.outputs.digest_linux_arm64 }}"
|
|
"image_name": "${{ steps.weekly-version.outputs.image_name }}"
|
|
"image_tag": "${{ steps.weekly-version.outputs.image_version }}"
|
|
"permissions":
|
|
"contents": "read"
|
|
"id-token": "write"
|
|
"runs-on": "${{ matrix.runs_on }}"
|
|
"steps":
|
|
- "name": "pull release library code"
|
|
"uses": "actions/checkout@v4"
|
|
"with":
|
|
"path": "lib"
|
|
"persist-credentials": false
|
|
"ref": "${{ env.RELEASE_LIB_REF }}"
|
|
"repository": "grafana/loki-release"
|
|
- "name": "pull code to release"
|
|
"uses": "actions/checkout@v4"
|
|
"with":
|
|
"path": "release"
|
|
"persist-credentials": false
|
|
"repository": "${{ env.RELEASE_REPO }}"
|
|
- "name": "setup node"
|
|
"uses": "actions/setup-node@v4"
|
|
"with":
|
|
"node-version": 20
|
|
"package-manager-cache": false
|
|
- "name": "Set up Docker buildx"
|
|
"uses": "docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2"
|
|
- "name": "Login to DockerHub (from Vault)"
|
|
"uses": "grafana/shared-workflows/actions/dockerhub-login@fa48192dac470ae356b3f7007229f3ac28c48a25"
|
|
- "id": "weekly-version"
|
|
"name": "Get weekly version"
|
|
"run": |
|
|
version=$(./tools/image-tag)
|
|
echo "image_version=$version" >> $GITHUB_OUTPUT
|
|
echo "image_name=${{ env.IMAGE_PREFIX }}/promtail" >> $GITHUB_OUTPUT
|
|
echo "image_full_name=${{ env.IMAGE_PREFIX }}/promtail:$version" >> $GITHUB_OUTPUT
|
|
"working-directory": "release"
|
|
- "id": "platform"
|
|
"name": "Parse image platform"
|
|
"run": |
|
|
platform="$(echo "${{ matrix.arch }}" | sed "s/\(.*\)\/\(.*\)/\1-\2/")"
|
|
echo "platform=${platform}" >> $GITHUB_OUTPUT
|
|
echo "platform_short=$(echo ${{ matrix.arch }} | cut -d / -f 2)" >> $GITHUB_OUTPUT
|
|
"working-directory": "release"
|
|
- "id": "build-push"
|
|
"name": "Build and push"
|
|
"timeout-minutes": "${{ fromJSON(env.BUILD_TIMEOUT) }}"
|
|
"uses": "docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1"
|
|
"with":
|
|
"build-args": |
|
|
IMAGE_TAG=${{ steps.weekly-version.outputs.image_version }}
|
|
GO_VERSION=${{ env.GO_VERSION }}
|
|
"context": "release"
|
|
"file": "release/clients/cmd/promtail/Dockerfile"
|
|
"outputs": "push-by-digest=true,type=image,name=${{ steps.weekly-version.outputs.image_name }},push=true"
|
|
"platforms": "${{ matrix.arch }}"
|
|
"provenance": true
|
|
"tags": "${{ steps.weekly-version.outputs.image_name }}"
|
|
- "env":
|
|
"OUTPUTS_DIGEST": "${{ steps.build-push.outputs.digest }}"
|
|
"id": "digest"
|
|
"name": "Process image digest"
|
|
"run": |
|
|
arch=$(echo ${{ matrix.arch }} | tr "/" "_")
|
|
echo "digest_$arch=$OUTPUTS_DIGEST" >> $GITHUB_OUTPUT
|
|
"working-directory": "release"
|
|
"strategy":
|
|
"fail-fast": true
|
|
"matrix":
|
|
"include":
|
|
- "arch": "linux/amd64"
|
|
"runs_on":
|
|
- "github-hosted-ubuntu-x64-small"
|
|
- "arch": "linux/arm64"
|
|
"runs_on":
|
|
- "github-hosted-ubuntu-arm64-small"
|
|
- "arch": "linux/arm"
|
|
"runs_on":
|
|
- "github-hosted-ubuntu-arm64-small"
|
|
"promtail-manifest":
|
|
"env":
|
|
"BUILD_TIMEOUT": 60
|
|
"IMAGE_DIGEST_AMD64": "${{ needs.promtail-image.outputs.image_digest_linux_amd64 }}"
|
|
"IMAGE_DIGEST_ARM": "${{ needs.promtail-image.outputs.image_digest_linux_arm }}"
|
|
"IMAGE_DIGEST_ARM64": "${{ needs.promtail-image.outputs.image_digest_linux_arm64 }}"
|
|
"OUTPUTS_IMAGE_NAME": "${{ needs.promtail-image.outputs.image_name }}"
|
|
"OUTPUTS_IMAGE_TAG": "${{ needs.promtail-image.outputs.image_tag }}"
|
|
"needs":
|
|
- "promtail-image"
|
|
"permissions":
|
|
"contents": "read"
|
|
"id-token": "write"
|
|
"runs-on": "ubuntu-latest"
|
|
"steps":
|
|
- "name": "Set up Docker buildx"
|
|
"uses": "docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2"
|
|
- "name": "Login to DockerHub (from Vault)"
|
|
"uses": "grafana/shared-workflows/actions/dockerhub-login@75804962c1ba608148988c1e2dc35fbb0ee21746"
|
|
- "name": "Publish multi-arch manifest"
|
|
"run": |
|
|
# Unfortunately there is no better way atm than having a separate named output for each digest
|
|
echo "linux/arm64 $IMAGE_DIGEST_ARM64"
|
|
echo "linux/amd64 $IMAGE_DIGEST_AMD64"
|
|
echo "linux/arm $IMAGE_DIGEST_ARM"
|
|
IMAGE="${OUTPUTS_IMAGE_NAME}:${OUTPUTS_IMAGE_TAG}"
|
|
echo "Create multi-arch manifest for $IMAGE"
|
|
docker buildx imagetools create -t $IMAGE \
|
|
${OUTPUTS_IMAGE_NAME}@${IMAGE_DIGEST_ARM64} \
|
|
${OUTPUTS_IMAGE_NAME}@${IMAGE_DIGEST_AMD64} \
|
|
${OUTPUTS_IMAGE_NAME}@${IMAGE_DIGEST_ARM}
|
|
docker buildx imagetools inspect $IMAGE
|
|
"name": "Publish images"
|
|
"on":
|
|
"push":
|
|
"branches":
|
|
- "k[0-9]+*"
|
|
- "main"
|
|
"workflow_dispatch": {}
|
|
"permissions":
|
|
"contents": "read"
|
|
"pull-requests": "read" |