feat: metrics generation workflow (#1481)

* Scripts to check new Go version

Signed-off-by: Sachin Sahu <sachinksahu.431@gmail.com>

* Changes to test workflow

Signed-off-by: Sachin Sahu <sachinksahu.431@gmail.com>

* Update workflow to run based on Go release cycle

Signed-off-by: Sachin Sahu <75629410+SachinSahu431@users.noreply.github.com>

* Revert deleted files for testing workflow

Signed-off-by: Sachin Sahu <75629410+SachinSahu431@users.noreply.github.com>

* Revert deleted file for testing workflow

Signed-off-by: Sachin Sahu <75629410+SachinSahu431@users.noreply.github.com>

* Fix linting issue

Signed-off-by: Sachin Sahu <75629410+SachinSahu431@users.noreply.github.com>

* Update cron schedule to per month

Signed-off-by: Sachin Sahu <75629410+SachinSahu431@users.noreply.github.com>

* Update bash file

Signed-off-by: Sachin Sahu <75629410+SachinSahu431@users.noreply.github.com>

* Keep latest 3 Go versions in supported_go_versions

Signed-off-by: Sachin Sahu <75629410+SachinSahu431@users.noreply.github.com>

---------

Signed-off-by: Sachin Sahu <sachinksahu.431@gmail.com>
Signed-off-by: Sachin Sahu <75629410+SachinSahu431@users.noreply.github.com>
This commit is contained in:
Sachin Sahu 2024-04-04 11:55:38 +05:30 committed by GitHub
parent e3bea8af78
commit 76fa980794
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 57 additions and 2 deletions

View File

@ -0,0 +1,33 @@
---
name: Generate Metric files for new Go version
on:
workflow_dispatch:
schedule:
- cron: '0 0 1 * *'
jobs:
update-go-versions:
name: Update Go Versions and Generate Tests
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Execute bash script
run: bash update-go-version.bash
# If there are no changes (i.e. no diff exists with the checked-out base branch),
# no pull request will be created and the action exits silently.
- name: Create a Pull Request
if: github.event_name != 'pull_request'
uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "Update Go Collector metrics for new Go version"
title: "chore: Update metrics for new Go version"
branch: update-metrics-for-new-go-version
base: main
draft: false
delete-branch: true

View File

@ -22,8 +22,7 @@ test-short: deps common-test-short
.PHONY: generate-go-collector-test-files
file := supported_go_versions.txt
# take top 3 versions
VERSIONS := $(shell cat ${file} | head -n 3)
VERSIONS := $(shell cat ${file})
generate-go-collector-test-files:
for GO_VERSION in $(VERSIONS); do \
docker run \

23
update-go-version.bash Normal file
View File

@ -0,0 +1,23 @@
#!/bin/env bash
set -e
get_latest_versions() {
curl -s https://go.dev/VERSION?m=text | sed -E -n 's/go([0-9]+\.[0-9]+|\.[0-9]+).*/\1/p'
}
current_version=$(cat supported_go_versions.txt | head -n 1)
latest_version=$(get_latest_versions)
# Check for new version of Go, and generate go collector test files
# Add new Go version to supported_go_versions.txt, and remove the oldest version
if [[ ! $current_version =~ $latest_version ]]; then
echo "New Go version available: $latest_version"
echo "Updating supported_go_versions.txt and generating Go Collector test files"
sed -i "1i $latest_version" supported_go_versions.txt
sed -i '$d' supported_go_versions.txt
make generate-go-collector-test-files
else
echo "No new Go version detected. Current Go version is: $current_version"
fi