chore(blooms): Make blocks cache preloading less verbose (#12107) #20
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
concurrency: | |
group: "create-release-pr-${{ github.sha }}" | |
env: | |
DOCKER_USERNAME: "grafana" | |
IMAGE_PREFIX: "grafana" | |
RELEASE_REPO: "grafana/loki" | |
SKIP_VALIDATION: false | |
VERSIONING_STRATEGY: "always-bump-minor" | |
jobs: | |
check: | |
uses: "grafana/loki-release/.github/workflows/[email protected]" | |
with: | |
skip_validation: false | |
create-release-pr: | |
needs: | |
- "dist" | |
- "fluent-bit" | |
- "fluentd" | |
- "logcli" | |
- "logstash" | |
- "loki" | |
- "loki-canary" | |
- "loki-canary-boringcrypto" | |
- "loki-operator" | |
- "promtail" | |
- "querytee" | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "pull code to release" | |
uses: "actions/checkout@v4" | |
with: | |
path: "release" | |
repository: "${{ env.RELEASE_REPO }}" | |
- name: "pull release library code" | |
uses: "actions/checkout@v4" | |
with: | |
path: "lib" | |
repository: "grafana/loki-release" | |
- name: "setup node" | |
uses: "actions/setup-node@v4" | |
with: | |
node-version: 20 | |
- id: "extract_branch" | |
name: "extract branch name" | |
run: | | |
echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT | |
working-directory: "release" | |
- env: | |
SHA: "${{ github.sha }}" | |
id: "release" | |
name: "release please" | |
run: | | |
npm install | |
echo "Pull request footer: Merging this PR will release the [artifacts](https://console.cloud.google.com/storage/browser/loki-build-artifacts/${SHA}) of ${SHA}" | |
npm exec -- release-please release-pr \ | |
--consider-all-branches \ | |
--label "backport main,autorelease: pending,type/docs" \ | |
--pull-request-footer "Merging this PR will release the [artifacts](https://console.cloud.google.com/storage/browser/loki-build-artifacts/${SHA}) of ${SHA}" \ | |
--release-type simple \ | |
--repo-url "${{ env.RELEASE_REPO }}" \ | |
--target-branch "${{ steps.extract_branch.outputs.branch }}" \ | |
--token "${{ secrets.GH_TOKEN }}" \ | |
--versioning-strategy "${{ env.VERSIONING_STRATEGY }}" \ | |
--separate-pull-requests false \ | |
--debug | |
working-directory: "lib" | |
dist: | |
needs: | |
- "version" | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "pull code to release" | |
uses: "actions/checkout@v4" | |
with: | |
path: "release" | |
repository: "${{ env.RELEASE_REPO }}" | |
- name: "auth gcs" | |
uses: "google-github-actions/auth@v2" | |
with: | |
credentials_json: "${{ secrets.GCS_SERVICE_ACCOUNT_KEY }}" | |
- id: "get-secrets" | |
name: "get nfpm signing keys" | |
uses: "grafana/shared-workflows/actions/get-vault-secrets@main" | |
with: | |
common_secrets: | | |
NFPM_SIGNING_KEY=packages-gpg:private-key | |
NFPM_PASSPHRASE=packages-gpg:passphrase | |
- env: | |
BUILD_IN_CONTAINER: false | |
DRONE_TAG: "${{ needs.version.outputs.version }}" | |
IMAGE_TAG: "${{ needs.version.outputs.version }}" | |
NFPM_SIGNING_KEY_FILE: "nfpm-private-key.key" | |
SKIP_ARM: false | |
name: "build artifacts" | |
run: | | |
cat <<EOF | docker run \ | |
--interactive \ | |
--env BUILD_IN_CONTAINER \ | |
--env DRONE_TAG \ | |
--env IMAGE_TAG \ | |
--env NFPM_PASSPHRASE \ | |
--env NFPM_SIGNING_KEY \ | |
--env NFPM_SIGNING_KEY_FILE \ | |
--env SKIP_ARM \ | |
--volume .:/src/loki \ | |
--workdir /src/loki \ | |
--entrypoint /bin/sh "grafana/loki-build-image:0.33.0" | |
git config --global --add safe.directory /src/loki | |
echo "${NFPM_SIGNING_KEY}" > $NFPM_SIGNING_KEY_FILE | |
make dist packages | |
EOF | |
working-directory: "release" | |
- name: "upload build artifacts" | |
uses: "google-github-actions/upload-cloud-storage@v2" | |
with: | |
destination: "loki-build-artifacts/${{ github.sha }}" | |
path: "release/dist" | |
process_gcloudignore: false | |
fluent-bit: | |
needs: | |
- "version" | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "pull release library code" | |
uses: "actions/checkout@v4" | |
with: | |
path: "lib" | |
repository: "grafana/loki-release" | |
- name: "pull code to release" | |
uses: "actions/checkout@v4" | |
with: | |
path: "release" | |
repository: "${{ env.RELEASE_REPO }}" | |
- name: "setup node" | |
uses: "actions/setup-node@v4" | |
with: | |
node-version: 20 | |
- name: "auth gcs" | |
uses: "google-github-actions/auth@v2" | |
with: | |
credentials_json: "${{ secrets.GCS_SERVICE_ACCOUNT_KEY }}" | |
- name: "Set up QEMU" | |
uses: "docker/setup-qemu-action@v3" | |
- name: "set up docker buildx" | |
uses: "docker/setup-buildx-action@v3" | |
- id: "platform" | |
name: "parse image platform" | |
run: | | |
mkdir -p images | |
platform="$(echo "${{ matrix.platform}}" | sed "s/\(.*\)\/\(.*\)/\1-\2/")" | |
echo "platform=${platform}" >> $GITHUB_OUTPUT | |
echo "platform_short=$(echo ${{ matrix.platform }} | cut -d / -f 2)" >> $GITHUB_OUTPUT | |
working-directory: "release" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "Build and export" | |
timeout-minutes: 25 | |
uses: "docker/build-push-action@v5" | |
with: | |
context: "release" | |
file: "release/clients/cmd/fluent-bit/Dockerfile" | |
outputs: "type=docker,dest=release/images/fluent-bit-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
platforms: "${{ matrix.platform }}" | |
tags: "${{ env.IMAGE_PREFIX }}/fluent-bit:${{ needs.version.outputs.version }}-${{ steps.platform.outputs.platform_short }}" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "upload artifacts" | |
uses: "google-github-actions/upload-cloud-storage@v2" | |
with: | |
destination: "loki-build-artifacts/${{ github.sha }}/images" | |
path: "release/images/fluent-bit-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
process_gcloudignore: false | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: | |
- "linux/amd64" | |
fluentd: | |
needs: | |
- "version" | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "pull release library code" | |
uses: "actions/checkout@v4" | |
with: | |
path: "lib" | |
repository: "grafana/loki-release" | |
- name: "pull code to release" | |
uses: "actions/checkout@v4" | |
with: | |
path: "release" | |
repository: "${{ env.RELEASE_REPO }}" | |
- name: "setup node" | |
uses: "actions/setup-node@v4" | |
with: | |
node-version: 20 | |
- name: "auth gcs" | |
uses: "google-github-actions/auth@v2" | |
with: | |
credentials_json: "${{ secrets.GCS_SERVICE_ACCOUNT_KEY }}" | |
- name: "Set up QEMU" | |
uses: "docker/setup-qemu-action@v3" | |
- name: "set up docker buildx" | |
uses: "docker/setup-buildx-action@v3" | |
- id: "platform" | |
name: "parse image platform" | |
run: | | |
mkdir -p images | |
platform="$(echo "${{ matrix.platform}}" | sed "s/\(.*\)\/\(.*\)/\1-\2/")" | |
echo "platform=${platform}" >> $GITHUB_OUTPUT | |
echo "platform_short=$(echo ${{ matrix.platform }} | cut -d / -f 2)" >> $GITHUB_OUTPUT | |
working-directory: "release" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "Build and export" | |
timeout-minutes: 25 | |
uses: "docker/build-push-action@v5" | |
with: | |
context: "release" | |
file: "release/clients/cmd/fluentd/Dockerfile" | |
outputs: "type=docker,dest=release/images/fluentd-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
platforms: "${{ matrix.platform }}" | |
tags: "${{ env.IMAGE_PREFIX }}/fluentd:${{ needs.version.outputs.version }}-${{ steps.platform.outputs.platform_short }}" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "upload artifacts" | |
uses: "google-github-actions/upload-cloud-storage@v2" | |
with: | |
destination: "loki-build-artifacts/${{ github.sha }}/images" | |
path: "release/images/fluentd-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
process_gcloudignore: false | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: | |
- "linux/amd64" | |
logcli: | |
needs: | |
- "version" | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "pull release library code" | |
uses: "actions/checkout@v4" | |
with: | |
path: "lib" | |
repository: "grafana/loki-release" | |
- name: "pull code to release" | |
uses: "actions/checkout@v4" | |
with: | |
path: "release" | |
repository: "${{ env.RELEASE_REPO }}" | |
- name: "setup node" | |
uses: "actions/setup-node@v4" | |
with: | |
node-version: 20 | |
- name: "auth gcs" | |
uses: "google-github-actions/auth@v2" | |
with: | |
credentials_json: "${{ secrets.GCS_SERVICE_ACCOUNT_KEY }}" | |
- name: "Set up QEMU" | |
uses: "docker/setup-qemu-action@v3" | |
- name: "set up docker buildx" | |
uses: "docker/setup-buildx-action@v3" | |
- id: "platform" | |
name: "parse image platform" | |
run: | | |
mkdir -p images | |
platform="$(echo "${{ matrix.platform}}" | sed "s/\(.*\)\/\(.*\)/\1-\2/")" | |
echo "platform=${platform}" >> $GITHUB_OUTPUT | |
echo "platform_short=$(echo ${{ matrix.platform }} | cut -d / -f 2)" >> $GITHUB_OUTPUT | |
working-directory: "release" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "Build and export" | |
timeout-minutes: 25 | |
uses: "docker/build-push-action@v5" | |
with: | |
context: "release" | |
file: "release/cmd/logcli/Dockerfile" | |
outputs: "type=docker,dest=release/images/logcli-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
platforms: "${{ matrix.platform }}" | |
tags: "${{ env.IMAGE_PREFIX }}/logcli:${{ needs.version.outputs.version }}-${{ steps.platform.outputs.platform_short }}" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "upload artifacts" | |
uses: "google-github-actions/upload-cloud-storage@v2" | |
with: | |
destination: "loki-build-artifacts/${{ github.sha }}/images" | |
path: "release/images/logcli-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
process_gcloudignore: false | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: | |
- "linux/amd64" | |
- "linux/arm64" | |
- "linux/arm" | |
logstash: | |
needs: | |
- "version" | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "pull release library code" | |
uses: "actions/checkout@v4" | |
with: | |
path: "lib" | |
repository: "grafana/loki-release" | |
- name: "pull code to release" | |
uses: "actions/checkout@v4" | |
with: | |
path: "release" | |
repository: "${{ env.RELEASE_REPO }}" | |
- name: "setup node" | |
uses: "actions/setup-node@v4" | |
with: | |
node-version: 20 | |
- name: "auth gcs" | |
uses: "google-github-actions/auth@v2" | |
with: | |
credentials_json: "${{ secrets.GCS_SERVICE_ACCOUNT_KEY }}" | |
- name: "Set up QEMU" | |
uses: "docker/setup-qemu-action@v3" | |
- name: "set up docker buildx" | |
uses: "docker/setup-buildx-action@v3" | |
- id: "platform" | |
name: "parse image platform" | |
run: | | |
mkdir -p images | |
platform="$(echo "${{ matrix.platform}}" | sed "s/\(.*\)\/\(.*\)/\1-\2/")" | |
echo "platform=${platform}" >> $GITHUB_OUTPUT | |
echo "platform_short=$(echo ${{ matrix.platform }} | cut -d / -f 2)" >> $GITHUB_OUTPUT | |
working-directory: "release" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "Build and export" | |
timeout-minutes: 25 | |
uses: "docker/build-push-action@v5" | |
with: | |
context: "release" | |
file: "release/clients/cmd/logstash/Dockerfile" | |
outputs: "type=docker,dest=release/images/logstash-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
platforms: "${{ matrix.platform }}" | |
tags: "${{ env.IMAGE_PREFIX }}/logstash:${{ needs.version.outputs.version }}-${{ steps.platform.outputs.platform_short }}" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "upload artifacts" | |
uses: "google-github-actions/upload-cloud-storage@v2" | |
with: | |
destination: "loki-build-artifacts/${{ github.sha }}/images" | |
path: "release/images/logstash-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
process_gcloudignore: false | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: | |
- "linux/amd64" | |
loki: | |
needs: | |
- "version" | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "pull release library code" | |
uses: "actions/checkout@v4" | |
with: | |
path: "lib" | |
repository: "grafana/loki-release" | |
- name: "pull code to release" | |
uses: "actions/checkout@v4" | |
with: | |
path: "release" | |
repository: "${{ env.RELEASE_REPO }}" | |
- name: "setup node" | |
uses: "actions/setup-node@v4" | |
with: | |
node-version: 20 | |
- name: "auth gcs" | |
uses: "google-github-actions/auth@v2" | |
with: | |
credentials_json: "${{ secrets.GCS_SERVICE_ACCOUNT_KEY }}" | |
- name: "Set up QEMU" | |
uses: "docker/setup-qemu-action@v3" | |
- name: "set up docker buildx" | |
uses: "docker/setup-buildx-action@v3" | |
- id: "platform" | |
name: "parse image platform" | |
run: | | |
mkdir -p images | |
platform="$(echo "${{ matrix.platform}}" | sed "s/\(.*\)\/\(.*\)/\1-\2/")" | |
echo "platform=${platform}" >> $GITHUB_OUTPUT | |
echo "platform_short=$(echo ${{ matrix.platform }} | cut -d / -f 2)" >> $GITHUB_OUTPUT | |
working-directory: "release" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "Build and export" | |
timeout-minutes: 25 | |
uses: "docker/build-push-action@v5" | |
with: | |
context: "release" | |
file: "release/cmd/loki/Dockerfile" | |
outputs: "type=docker,dest=release/images/loki-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
platforms: "${{ matrix.platform }}" | |
tags: "${{ env.IMAGE_PREFIX }}/loki:${{ needs.version.outputs.version }}-${{ steps.platform.outputs.platform_short }}" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "upload artifacts" | |
uses: "google-github-actions/upload-cloud-storage@v2" | |
with: | |
destination: "loki-build-artifacts/${{ github.sha }}/images" | |
path: "release/images/loki-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
process_gcloudignore: false | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: | |
- "linux/amd64" | |
- "linux/arm64" | |
- "linux/arm" | |
loki-canary: | |
needs: | |
- "version" | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "pull release library code" | |
uses: "actions/checkout@v4" | |
with: | |
path: "lib" | |
repository: "grafana/loki-release" | |
- name: "pull code to release" | |
uses: "actions/checkout@v4" | |
with: | |
path: "release" | |
repository: "${{ env.RELEASE_REPO }}" | |
- name: "setup node" | |
uses: "actions/setup-node@v4" | |
with: | |
node-version: 20 | |
- name: "auth gcs" | |
uses: "google-github-actions/auth@v2" | |
with: | |
credentials_json: "${{ secrets.GCS_SERVICE_ACCOUNT_KEY }}" | |
- name: "Set up QEMU" | |
uses: "docker/setup-qemu-action@v3" | |
- name: "set up docker buildx" | |
uses: "docker/setup-buildx-action@v3" | |
- id: "platform" | |
name: "parse image platform" | |
run: | | |
mkdir -p images | |
platform="$(echo "${{ matrix.platform}}" | sed "s/\(.*\)\/\(.*\)/\1-\2/")" | |
echo "platform=${platform}" >> $GITHUB_OUTPUT | |
echo "platform_short=$(echo ${{ matrix.platform }} | cut -d / -f 2)" >> $GITHUB_OUTPUT | |
working-directory: "release" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "Build and export" | |
timeout-minutes: 25 | |
uses: "docker/build-push-action@v5" | |
with: | |
context: "release" | |
file: "release/cmd/loki-canary/Dockerfile" | |
outputs: "type=docker,dest=release/images/loki-canary-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
platforms: "${{ matrix.platform }}" | |
tags: "${{ env.IMAGE_PREFIX }}/loki-canary:${{ needs.version.outputs.version }}-${{ steps.platform.outputs.platform_short }}" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "upload artifacts" | |
uses: "google-github-actions/upload-cloud-storage@v2" | |
with: | |
destination: "loki-build-artifacts/${{ github.sha }}/images" | |
path: "release/images/loki-canary-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
process_gcloudignore: false | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: | |
- "linux/amd64" | |
- "linux/arm64" | |
- "linux/arm" | |
loki-canary-boringcrypto: | |
needs: | |
- "version" | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "pull release library code" | |
uses: "actions/checkout@v4" | |
with: | |
path: "lib" | |
repository: "grafana/loki-release" | |
- name: "pull code to release" | |
uses: "actions/checkout@v4" | |
with: | |
path: "release" | |
repository: "${{ env.RELEASE_REPO }}" | |
- name: "setup node" | |
uses: "actions/setup-node@v4" | |
with: | |
node-version: 20 | |
- name: "auth gcs" | |
uses: "google-github-actions/auth@v2" | |
with: | |
credentials_json: "${{ secrets.GCS_SERVICE_ACCOUNT_KEY }}" | |
- name: "Set up QEMU" | |
uses: "docker/setup-qemu-action@v3" | |
- name: "set up docker buildx" | |
uses: "docker/setup-buildx-action@v3" | |
- id: "platform" | |
name: "parse image platform" | |
run: | | |
mkdir -p images | |
platform="$(echo "${{ matrix.platform}}" | sed "s/\(.*\)\/\(.*\)/\1-\2/")" | |
echo "platform=${platform}" >> $GITHUB_OUTPUT | |
echo "platform_short=$(echo ${{ matrix.platform }} | cut -d / -f 2)" >> $GITHUB_OUTPUT | |
working-directory: "release" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "Build and export" | |
timeout-minutes: 25 | |
uses: "docker/build-push-action@v5" | |
with: | |
context: "release" | |
file: "release/cmd/loki-canary-boringcrypto/Dockerfile" | |
outputs: "type=docker,dest=release/images/loki-canary-boringcrypto-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
platforms: "${{ matrix.platform }}" | |
tags: "${{ env.IMAGE_PREFIX }}/loki-canary-boringcrypto:${{ needs.version.outputs.version }}-${{ steps.platform.outputs.platform_short }}" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "upload artifacts" | |
uses: "google-github-actions/upload-cloud-storage@v2" | |
with: | |
destination: "loki-build-artifacts/${{ github.sha }}/images" | |
path: "release/images/loki-canary-boringcrypto-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
process_gcloudignore: false | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: | |
- "linux/amd64" | |
- "linux/arm64" | |
- "linux/arm" | |
loki-operator: | |
needs: | |
- "version" | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "pull release library code" | |
uses: "actions/checkout@v4" | |
with: | |
path: "lib" | |
repository: "grafana/loki-release" | |
- name: "pull code to release" | |
uses: "actions/checkout@v4" | |
with: | |
path: "release" | |
repository: "${{ env.RELEASE_REPO }}" | |
- name: "setup node" | |
uses: "actions/setup-node@v4" | |
with: | |
node-version: 20 | |
- name: "auth gcs" | |
uses: "google-github-actions/auth@v2" | |
with: | |
credentials_json: "${{ secrets.GCS_SERVICE_ACCOUNT_KEY }}" | |
- name: "Set up QEMU" | |
uses: "docker/setup-qemu-action@v3" | |
- name: "set up docker buildx" | |
uses: "docker/setup-buildx-action@v3" | |
- id: "platform" | |
name: "parse image platform" | |
run: | | |
mkdir -p images | |
platform="$(echo "${{ matrix.platform}}" | sed "s/\(.*\)\/\(.*\)/\1-\2/")" | |
echo "platform=${platform}" >> $GITHUB_OUTPUT | |
echo "platform_short=$(echo ${{ matrix.platform }} | cut -d / -f 2)" >> $GITHUB_OUTPUT | |
working-directory: "release" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "Build and export" | |
timeout-minutes: 25 | |
uses: "docker/build-push-action@v5" | |
with: | |
context: "release/operator" | |
file: "release/operator/Dockerfile" | |
outputs: "type=docker,dest=release/images/loki-operator-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
platforms: "${{ matrix.platform }}" | |
tags: "${{ env.IMAGE_PREFIX }}/loki-operator:${{ needs.version.outputs.version }}-${{ steps.platform.outputs.platform_short }}" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "upload artifacts" | |
uses: "google-github-actions/upload-cloud-storage@v2" | |
with: | |
destination: "loki-build-artifacts/${{ github.sha }}/images" | |
path: "release/images/loki-operator-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
process_gcloudignore: false | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: | |
- "linux/amd64" | |
promtail: | |
needs: | |
- "version" | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "pull release library code" | |
uses: "actions/checkout@v4" | |
with: | |
path: "lib" | |
repository: "grafana/loki-release" | |
- name: "pull code to release" | |
uses: "actions/checkout@v4" | |
with: | |
path: "release" | |
repository: "${{ env.RELEASE_REPO }}" | |
- name: "setup node" | |
uses: "actions/setup-node@v4" | |
with: | |
node-version: 20 | |
- name: "auth gcs" | |
uses: "google-github-actions/auth@v2" | |
with: | |
credentials_json: "${{ secrets.GCS_SERVICE_ACCOUNT_KEY }}" | |
- name: "Set up QEMU" | |
uses: "docker/setup-qemu-action@v3" | |
- name: "set up docker buildx" | |
uses: "docker/setup-buildx-action@v3" | |
- id: "platform" | |
name: "parse image platform" | |
run: | | |
mkdir -p images | |
platform="$(echo "${{ matrix.platform}}" | sed "s/\(.*\)\/\(.*\)/\1-\2/")" | |
echo "platform=${platform}" >> $GITHUB_OUTPUT | |
echo "platform_short=$(echo ${{ matrix.platform }} | cut -d / -f 2)" >> $GITHUB_OUTPUT | |
working-directory: "release" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "Build and export" | |
timeout-minutes: 25 | |
uses: "docker/build-push-action@v5" | |
with: | |
context: "release" | |
file: "release/clients/cmd/promtail/Dockerfile" | |
outputs: "type=docker,dest=release/images/promtail-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
platforms: "${{ matrix.platform }}" | |
tags: "${{ env.IMAGE_PREFIX }}/promtail:${{ needs.version.outputs.version }}-${{ steps.platform.outputs.platform_short }}" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "upload artifacts" | |
uses: "google-github-actions/upload-cloud-storage@v2" | |
with: | |
destination: "loki-build-artifacts/${{ github.sha }}/images" | |
path: "release/images/promtail-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
process_gcloudignore: false | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: | |
- "linux/amd64" | |
- "linux/arm64" | |
- "linux/arm" | |
querytee: | |
needs: | |
- "version" | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "pull release library code" | |
uses: "actions/checkout@v4" | |
with: | |
path: "lib" | |
repository: "grafana/loki-release" | |
- name: "pull code to release" | |
uses: "actions/checkout@v4" | |
with: | |
path: "release" | |
repository: "${{ env.RELEASE_REPO }}" | |
- name: "setup node" | |
uses: "actions/setup-node@v4" | |
with: | |
node-version: 20 | |
- name: "auth gcs" | |
uses: "google-github-actions/auth@v2" | |
with: | |
credentials_json: "${{ secrets.GCS_SERVICE_ACCOUNT_KEY }}" | |
- name: "Set up QEMU" | |
uses: "docker/setup-qemu-action@v3" | |
- name: "set up docker buildx" | |
uses: "docker/setup-buildx-action@v3" | |
- id: "platform" | |
name: "parse image platform" | |
run: | | |
mkdir -p images | |
platform="$(echo "${{ matrix.platform}}" | sed "s/\(.*\)\/\(.*\)/\1-\2/")" | |
echo "platform=${platform}" >> $GITHUB_OUTPUT | |
echo "platform_short=$(echo ${{ matrix.platform }} | cut -d / -f 2)" >> $GITHUB_OUTPUT | |
working-directory: "release" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "Build and export" | |
timeout-minutes: 25 | |
uses: "docker/build-push-action@v5" | |
with: | |
context: "release" | |
file: "release/cmd/querytee/Dockerfile" | |
outputs: "type=docker,dest=release/images/querytee-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
platforms: "${{ matrix.platform }}" | |
tags: "${{ env.IMAGE_PREFIX }}/querytee:${{ needs.version.outputs.version }}-${{ steps.platform.outputs.platform_short }}" | |
- if: "${{ fromJSON(needs.version.outputs.pr_created) }}" | |
name: "upload artifacts" | |
uses: "google-github-actions/upload-cloud-storage@v2" | |
with: | |
destination: "loki-build-artifacts/${{ github.sha }}/images" | |
path: "release/images/querytee-${{ needs.version.outputs.version}}-${{ steps.platform.outputs.platform }}.tar" | |
process_gcloudignore: false | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: | |
- "linux/amd64" | |
version: | |
needs: | |
- "check" | |
outputs: | |
pr_created: "${{ steps.version.outputs.pr_created }}" | |
version: "${{ steps.version.outputs.version }}" | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "pull release library code" | |
uses: "actions/checkout@v4" | |
with: | |
path: "lib" | |
repository: "grafana/loki-release" | |
- name: "pull code to release" | |
uses: "actions/checkout@v4" | |
with: | |
path: "release" | |
repository: "${{ env.RELEASE_REPO }}" | |
- name: "setup node" | |
uses: "actions/setup-node@v4" | |
with: | |
node-version: 20 | |
- id: "extract_branch" | |
name: "extract branch name" | |
run: | | |
echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT | |
working-directory: "release" | |
- id: "version" | |
name: "get release version" | |
run: | | |
npm install | |
npm exec -- release-please release-pr \ | |
--consider-all-branches \ | |
--dry-run \ | |
--dry-run-output release.json \ | |
--release-type simple \ | |
--repo-url="${{ env.RELEASE_REPO }}" \ | |
--target-branch "${{ steps.extract_branch.outputs.branch }}" \ | |
--token="${{ secrets.GH_TOKEN }}" \ | |
--versioning-strategy "${{ env.VERSIONING_STRATEGY }}" | |
if [[ `jq length release.json` -gt 1 ]]; then | |
echo 'release-please would create more than 1 PR, so cannot determine correct version' | |
echo "pr_created=false" >> $GITHUB_OUTPUT | |
exit 1 | |
fi | |
if [[ `jq length release.json` -eq 0 ]]; then | |
echo "pr_created=false" >> $GITHUB_OUTPUT | |
else | |
version="$(npm run --silent get-version)" | |
echo "Parsed version: ${version}" | |
echo "version=${version}" >> $GITHUB_OUTPUT | |
echo "pr_created=true" >> $GITHUB_OUTPUT | |
fi | |
working-directory: "lib" | |
name: "create release PR" | |
"on": | |
push: | |
branches: | |
- "k[0-9]+" | |
permissions: | |
contents: "write" | |
id-token: "write" | |
pull-requests: "write" |