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:
parent
e3bea8af78
commit
76fa980794
|
@ -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
|
3
Makefile
3
Makefile
|
@ -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 \
|
||||
|
|
|
@ -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
|
||||
|
Loading…
Reference in New Issue