diff --git a/.github/workflows/release-integration.yml b/.github/workflows/release-integration.yml index 9205be16..73a919fa 100644 --- a/.github/workflows/release-integration.yml +++ b/.github/workflows/release-integration.yml @@ -9,7 +9,6 @@ on: env: ORIGINAL_REPO_NAME: ${{ github.event.repository.full_name }} - CHART_DIRECTORY: 'charts/nri-metadata-injection' jobs: build: @@ -28,7 +27,6 @@ jobs: uses: golangci/golangci-lint-action@v3 with: only-new-issues: true - skip-cache: true - name: Build integration env: GOOS: ${{ matrix.goos }} @@ -46,8 +44,6 @@ jobs: name: Release docker needs: [ build ] runs-on: ubuntu-latest - outputs: - new-version: ${{ steps.set-new-version.outputs.new-version }} env: DOCKER_IMAGE_NAME: newrelic/k8s-metadata-injection DOCKER_PLATFORMS: "linux/amd64,linux/arm64,linux/arm" # Must be consistent with the matrix from the job above @@ -58,7 +54,6 @@ jobs: echo "${{ github.event.release.tag_name }}" | grep -E '^[v]?[0-9.]*[0-9]$' DOCKER_IMAGE_TAG=$(echo "${{ github.event.release.tag_name }}" | sed 's/^v//') echo "DOCKER_IMAGE_TAG=$DOCKER_IMAGE_TAG" >> $GITHUB_ENV - echo "new-version=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT - uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 @@ -100,93 +95,10 @@ jobs: -t $DOCKER_IMAGE_NAME:$DOCKER_IMAGE_TAG \ -t $DOCKER_IMAGE_NAME:latest \ . - open-pr: - name: Update version and appVersion and open pr - needs: [ docker-integration ] - runs-on: ubuntu-latest - # run only for releases (not prereleases) - if: ${{ ! github.event.release.prerelease }} - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Find new appVersion - id: find-version - run: | - echo "NEW_APP_VERSION=${{ needs.docker-integration.outputs.new-version }}" >> $GITHUB_ENV - echo "new app version: $NEW_APP_VERSION" - - - name: Find current appVersion - id: original_version - run: | - ORIGINAL_APP_VERSION=$(yq eval '.appVersion' ${{ env.CHART_DIRECTORY }}/Chart.yaml) - echo "original app version: $ORIGINAL_APP_VERSION" - echo "ORIGINAL_APP_VERSION=$ORIGINAL_APP_VERSION" >> $GITHUB_ENV - - - name: Find current helm chart version - run: | - CURRENT_VERSION=$(yq eval '.version' ${{ env.CHART_DIRECTORY }}/Chart.yaml) - echo "version: $CURRENT_VERSION" - echo "CURRENT_VERSION=$CURRENT_VERSION" >> $GITHUB_ENV - - - name: Set up Golang - uses: actions/setup-go@v4 - with: - go-version: 1.19.11 - - - name: Find next helm chart version - run: | - NEXT_VERSION=$(go run ./src/utils/version-update.go "$CURRENT_VERSION" "$ORIGINAL_APP_VERSION" "$NEW_APP_VERSION") - echo "Next helm chart version: $NEXT_VERSION" - echo "NEXT_VERSION=$NEXT_VERSION" >> $GITHUB_ENV - - - name: Update version helm chart - # fail the workflow if newVersion is "error", otherwise set the new versions and continue with opening pr - run: | - if [ "${NEXT_VERSION}" != 'error' ]; then - echo "new appVersion to set: ${NEW_APP_VERSION}" - echo "new version to set: $NEXT_VERSION}" - yq e -i ".appVersion=\"${NEW_APP_VERSION}\"" "${{ env.CHART_DIRECTORY }}/Chart.yaml" - yq e -i ".version=\"${NEXT_VERSION}\"" "${{ env.CHART_DIRECTORY }}/Chart.yaml" - else - echo "Error: newVersion is 'error'." - exit 1 - fi - - - name: Install Helm Docs - run: | - wget https://github.com/norwoodj/helm-docs/releases/download/v1.11.0/helm-docs_1.11.0_Linux_x86_64.tar.gz - tar -xvf helm-docs_1.11.0_Linux_x86_64.tar.gz - sudo mv helm-docs /usr/local/sbin - - - name: Run Helm Docs - run: | - helm-docs - - - name: Configure Git - run: | - git config user.name "${{ github.actor }}" - git config user.email "${{ github.actor }}@users.noreply.github.com" - - - name: Commit Changes - run: | - git checkout -b update-chart-version-${{ github.sha }} - git branch -a - git add ${{ env.CHART_DIRECTORY }}/Chart.yaml - git add ${{ env.CHART_DIRECTORY }}/README.md - git commit -m "Bump versions and update docs" - - - name: Push Changes - run: git push origin update-chart-version-${{ github.sha }} - - - name: Open pull request - run: gh pr create -B main -H update-chart-version-${{ github.sha }} --title 'Bump version and update docs' --body 'Bump version and appVersion and results of running helm docs as part of release automation.' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} notify-failure: if: ${{ always() && failure() }} - needs: [docker-integration, open-pr] + needs: [docker-integration] runs-on: ubuntu-latest steps: - name: Notify failure via Slack diff --git a/src/utils/version-update.go b/src/utils/version-update.go deleted file mode 100644 index 8daa5299..00000000 --- a/src/utils/version-update.go +++ /dev/null @@ -1,57 +0,0 @@ -// nolint -// Used in the release-integration workflow -package main - -import ( - "fmt" - "os" - "strconv" - "strings" -) - -func incrementMajorVersion(major int) string { - return fmt.Sprintf("%d.0.0", major+1) -} - -func incrementMinorVersion(major int, minor int) string { - return fmt.Sprintf("%d.%d.0", major, minor+1) -} - -func incrementPatchVersion(major int, minor int, patch int) string { - return fmt.Sprintf("%d.%d.%d", major, minor, patch+1) -} - -func getVersionDifferenceTypeAndIncrement(version, current, updated string) string { - currentSegments := strings.Split(current, ".") - updatedSegments := strings.Split(updated, ".") - versionSegments := strings.Split(version, ".") - - major, _ := strconv.Atoi(versionSegments[0]) - minor, _ := strconv.Atoi(versionSegments[1]) - patch, _ := strconv.Atoi(versionSegments[2]) - - if currentSegments[0] != updatedSegments[0] { - return incrementMajorVersion(major) - } else if currentSegments[1] != updatedSegments[1] { - return incrementMinorVersion(major, minor) - } else if currentSegments[2] != updatedSegments[2] { - return incrementPatchVersion(major, minor, patch) - } else { - return "error" - } -} - -func main() { - args := os.Args - if len(args) != 4 { - fmt.Println("Error: Missing arguments") - os.Exit(1) - } - - version := args[1] - current := args[2] - updated := args[3] - - result := getVersionDifferenceTypeAndIncrement(version, current, updated) - fmt.Println(result) -}