Skip to content

chore: test 2

chore: test 2 #315

Workflow file for this run

# Reference from:
# https://goreleaser.com/ci/actions/
name: Release
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+'
permissions:
contents: write
pull-requests: write
jobs:
Test:
name: Unit Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go 1.22
uses: actions/setup-go@v5
with:
go-version: '1.22'
- name: Running go tests with coverage
env:
GO111MODULE: on
run: make cover
GolangLint:
name: Golang Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go 1.22
uses: actions/setup-go@v5
with:
go-version: '1.22'
- name: golangci-lint
uses: golangci/golangci-lint-action@v6
with:
version: v1.62.0
skip-cache: true
args: >
--timeout=10m
--verbose
--max-issues-per-linter=0
--max-same-issues=0
# Lints Pull Request commits with commitlint.
#
# Rules can be referenced:
# https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional
CommitLint:
name: Commit Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: wagoid/commitlint-github-action@v5
# Release the artifacts, release note and images.
Release:
runs-on: ubuntu-latest
# needs: [Test, GolangLint, CommitLint]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check if on tag
run: |
if [[ "${GITHUB_REF#refs/tags/}" != "$GITHUB_REF" ]]; then
echo "Running on tag ${GITHUB_REF#refs/tags/}"
else
echo "Not running on a tag"
fi
- name: Get version
id: get_version
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
# - name: Login to Docker Hub
# uses: docker/login-action@v2
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Set up QEMU
# uses: docker/setup-qemu-action@v2
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v2
# - name: Set up Go
# uses: actions/setup-go@v5
# with:
# go-version: '1.22'
# - name: Set up Node.js
# uses: actions/setup-node@v2
# with:
# node-version: '20'
# - name: Install npm packages and build UI
# working-directory: ./ui
# run: |
# npm install
# # Using 'CI=false' prevents build errors due to warnings.
# # It bypasses the 'process.env.CI = true' setting in CI environments
# # that treats warnings as errors, ensuring a successful build.
# CI=false npm run build
# touch build/.gitkeep
# - name: Determine GoReleaser Config with Regex
# run: |
# tag=${GITHUB_REF#refs/tags/}
# alpha='v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+'
# beta='v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+'
# rc='v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+'
# release='v[0-9]+.[0-9]+.[0-9]+'
# if [[ $tag =~ $alpha ]] || [[ $tag =~ $beta ]]; then
# echo "Match found for alpha or beta tag"
# echo "GO_RELEASER_CONFIG=.goreleaser-dev.yml" >> $GITHUB_ENV
# elif [[ $tag =~ $rc ]] || [[ $tag =~ $release ]]; then
# echo "Match found for rc or release tag"
# echo "GO_RELEASER_CONFIG=.goreleaser.yml" >> $GITHUB_ENV
# else
# echo "No match found"
# exit 1
# fi
# - name: Release the karpor with GoReleaser
# uses: goreleaser/goreleaser-action@v2
# with:
# distribution: goreleaser
# version: latest
# args: release --clean --config .goreleaser/${{ env.GO_RELEASER_CONFIG }}
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Get new chart version from the chart repo
id: get_chart_version
run: |
helm repo add kusionstack https://kusionstack.github.io/charts
helm repo update
version=$(helm search repo kusionstack/karpor --versions | head -n 2 | tail -n 1 | awk '{print $2}')
if [ -z "$version" ]; then
echo "Error: Unable to fetch chart version" >&2
exit 1
fi
echo "Current chart version is: $version"
major=$(echo "$version" | cut -d. -f1)
minor=$(echo "$version" | cut -d. -f2)
patch=$(echo "$version" | cut -d. -f3)
new_chart_version="${major}.${minor}.$((patch + 1))"
echo "New chart version is: $new_chart_version"
# Calculate appVersion by removing 'v' prefix from VERSION
new_app_version="${{ steps.get_version.outputs.VERSION }}"
new_app_version="${new_app_version#v}"
echo "New app version is: $new_app_version"
echo "::set-output name=new_chart_version::$new_chart_version"
echo "::set-output name=new_app_version::$new_app_version"
- name: Checkout Target repository
uses: actions/checkout@v4
with:
repository: KusionStack/charts
path: charts
token: ${{ secrets.CHART_UPDATER_PAT }}
fetch-depth: 0
- name: Bump version in the related HelmChart Chart.yaml
uses: fjogeleit/yaml-update-action@main
env:
COMMIT_MESSAGE: 'chore(karpor): bump app version to ${{ steps.get_chart_version.outputs.new_app_version }}, chart version to ${{ steps.get_chart_version.outputs.new_chart_version }}'
with:
repository: KusionStack/charts
valueFile: 'charts/karpor/Chart.yaml'
changes: '{"version":"${{ steps.get_chart_version.outputs.new_chart_version }}", "appVersion":"${{ steps.get_chart_version.outputs.new_app_version }}"}'
value: ${{ steps.get_chart_version.outputs.new_app_version }}
branch: bump-karpor-to-${{ steps.get_chart_version.outputs.new_app_version }}
targetBranch: master
message: ${{ env.COMMIT_MESSAGE }}
createPR: true
title: ${{ env.COMMIT_MESSAGE }}
description: |
This PR updates the Karpor Helm chart with the following changes:
- Bump the `appVersion` to `${{ steps.get_chart_version.outputs.new_app_version }}`
- Bump the `version` to `${{ steps.get_chart_version.outputs.new_chart_version }}`
These updates ensure that the chart reflects the latest Karpor release.
**Note**: This PR was automatically generated by the **karpor-chart-updater[bot]**.
labels: 'karpor-chart-updater[bot]'
token: ${{ secrets.CHART_UPDATER_PAT }}
workDir: charts
- name: Log Test Outputs # Log outputs for debugging
run: |
echo "Testing complete. Check the logs for details."
echo "New chart version: ${{ steps.get_chart_version.outputs.new_chart_version }}"
echo "New app version: ${{ steps.get_chart_version.outputs.new_app_version }}"