-
Notifications
You must be signed in to change notification settings - Fork 3.4k
111 lines (97 loc) · 3.94 KB
/
logql-analyzer.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
name: LogQL Analyzer
on:
workflow_dispatch:
pull_request:
release:
types:
- released
permissions:
contents: read
id-token: write
jobs:
analyze:
runs-on: ubuntu-latest
env:
BUILD_TIMEOUT: 60
IMAGE_PREFIX: "grafana"
RELEASE_VERSION: "${{ github.event.release.tag_name || 'test' }}"
steps:
- uses: actions/checkout@v4
with:
fetch-tags: true
- name: prepare
id: prepare
env:
MAJOR_MINOR_VERSION_REGEXP: '([0-9]+\\.[0-9]+)'
RELEASE_TAG_REGEXP: '^([0-9]+\\.[0-9]+\\.[0-9]+)$'
run: |
echo "$(./tools/image-tag)" > .tag
if [[ "$RELEASE_VERSION" == "test" ]]; then
echo "RELEASE_VERSION is not set, using image tag"
RELEASE_VERSION="$(cat .tag)"
fi
echo "RELEASE_VERSION: $RELEASE_VERSION"
# if the tag matches the pattern `D.D.D` then RELEASE_NAME="D-D-x", otherwise RELEASE_NAME="next"
RELEASE_NAME=$([[ $RELEASE_VERSION =~ $RELEASE_TAG_REGEXP ]] && echo $RELEASE_TAG | grep -oE $MAJOR_MINOR_VERSION_REGEXP | sed "s/\\./-/g" | sed "s/$/-x/" || echo "next")
echo "RELEASE_NAME: $RELEASE_NAME"
echo "release_version=${RELEASE_VERSION}" >> "$GITHUB_OUTPUT"
echo "release_name=${RELEASE_NAME}" >> "$GITHUB_OUTPUT"
- id: "get-github-app-token"
name: "get github app token"
uses: "actions/create-github-app-token@v1"
with:
app-id: "${{ secrets.APP_ID }}"
owner: "${{ github.repository_owner }}"
private-key: "${{ secrets.APP_PRIVATE_KEY }}"
- name: "Set up QEMU"
uses: "docker/setup-qemu-action@v3"
- name: "set up docker buildx"
uses: "docker/setup-buildx-action@v3"
- name: "Login to DockerHub (from vault)"
uses: "grafana/shared-workflows/actions/dockerhub-login@main"
- name: "Build and push"
timeout-minutes: "${{ fromJSON(env.BUILD_TIMEOUT) }}"
uses: "docker/build-push-action@v6"
with:
build-args: "IMAGE_TAG=${{ steps.prepare.outputs.release_version }}"
file: "cmd/logql-analyzer/Dockerfile"
platforms: "linux/amd64"
push: true
tags: "grafana/logql-analyzer:${{ steps.prepare.outputs.release_version }}"
- name: Log in to Google Artifact Registry
uses: grafana/shared-workflows/actions/login-to-gar@main
with:
environment: "prod"
- name: Update to latest image
env:
GITHUB_TOKEN: ${{ steps.get-github-app-token.outputs.token }}
RELEASE_NAME: ${{ steps.prepare.outputs.release_name }}
RELEASE_VERSION: ${{ steps.prepare.outputs.release_version }}
run: |
set -e -o pipefail
cat << EOF > config.json
{
"repo_name": "deployment_tools",
"destination_branch": "master",
"git_author_email": "119986603+updater-for-ci[bot]@users.noreply.github.com",
"git_author_name": "version_bumper[bot]",
"git_committer_email": "119986603+updater-for-ci[bot]@users.noreply.github.com",
"git_committer_name": "version_bumper[bot]",
"pull_request_branch_prefix": "logql-analyzer/updater",
"pull_request_enabled": true,
"pull_request_existing_strategy": "replace",
"pull_request_title_prefix": "[logql-analyzer updater] ",
"pull_request_message": "Add logql-analyzer version to ${RELEASE_VERSION} to supported versions",
"update_jsonnet_attribute_configs": [
{
"file_path": "ksonnet/environments/logql-analyzer/supported-versions.libsonnet",
"jsonnet_key": "${RELEASE_NAME}",
"jsonnet_value": "grafana/logql-analyzer:${RELEASE_VERSION}-amd64",
"upsert": true
}
]
}
EOF
docker run --rm \
-e GITHUB_TOKEN="$GITHUB_TOKEN" \
-e CONFIG_JSON="$(cat config.json)" us-docker.pkg.dev/grafanalabs-global/docker-deployment-tools-prod/updater |& tee updater-output.log