diff --git a/.github/workflows/update-dependencies.yml b/.github/workflows/update-dependencies.yml index 5bf6945ab..55d9a2af2 100644 --- a/.github/workflows/update-dependencies.yml +++ b/.github/workflows/update-dependencies.yml @@ -19,33 +19,22 @@ jobs: egress-policy: audit - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - with: - ref: main - name: build dependency updater run: cd dependency_updater && go build - name: run dependency updater + id: run_dependency_updater env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: cd dependency_updater && ./dependency_updater --repo ../ --github-action true - - name: load commit message/title .env file - if: ${{ hashFiles('commit_message.env') != '' }} - uses: aarcangeli/load-dotenv@2afd907c7bb1c0324d22a6192693213867e77443 # v1.1.0 - with: - filenames: 'commit_message.env' - - - name: remove commit message .env - if: ${{ hashFiles('commit_message.env') != '' }} - run: rm commit_message.env - - name: create pull request - if: ${{ env.TITLE != '' }} + if: ${{ steps.run_dependency_updater.outputs.TITLE != '' }} uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8 with: - title: ${{ env.TITLE }} - commit-message: ${{ env.TITLE }} - body: ${{ env.DESC }} + title: ${{ steps.run_dependency_updater.outputs.TITLE }} + commit-message: ${{ steps.run_dependency_updater.outputs.TITLE }} + body: ${{ steps.run_dependency_updater.outputs.DESC }} branch: run-dependency-updater delete-branch: true \ No newline at end of file diff --git a/dependency_updater/dependency_updater.go b/dependency_updater/dependency_updater.go index f6f596f10..34cfbf2ba 100644 --- a/dependency_updater/dependency_updater.go +++ b/dependency_updater/dependency_updater.go @@ -164,7 +164,7 @@ func getAndUpdateDependency(ctx context.Context, client *github.Client, dependen if err != nil { return VersionUpdateInfo{}, err } - if updatedDependency != (VersionUpdateInfo{}) || dependencies[dependencyType].Tracking == "branch" { + if updatedDependency != (VersionUpdateInfo{}) { e := updateVersionTagAndCommit(commit, version, dependencyType, repoPath, dependencies) if e != nil { return VersionUpdateInfo{}, fmt.Errorf("error updating version tag and commit: %s", e) @@ -256,6 +256,15 @@ func getVersionAndCommit(ctx context.Context, client *github.Client, dependencie return "", "", VersionUpdateInfo{}, fmt.Errorf("error listing commits for "+dependencyType+": %s", err) } commit = *branchCommit[0].SHA + if dependencies[dependencyType].Commit != commit { + diff := dependencies[dependencyType].Commit + " => " + commit + updatedDependency = VersionUpdateInfo{ + dependencies[dependencyType].Repo, + dependencies[dependencyType].Tag, + commit, + diff, + } + } } if version != nil { @@ -332,17 +341,25 @@ func createVersionsEnv(repoPath string, dependencies Dependencies) error { } func createGitMessageEnv(title string, description string, repoPath string) error { - file, err := os.Create(repoPath + "/commit_message.env") + file := os.Getenv("GITHUB_OUTPUT") + f, err := os.OpenFile(file, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { - return fmt.Errorf("error creating commit_message.env file: %s", err) + return fmt.Errorf("error failed to open GITHUB_OUTPUT file: %s", err) } - defer file.Close() + defer f.Close() - envString := "export TITLE=" + title + "\nexport DESC=" + description - _, err = file.WriteString(envString) + titleToWrite := fmt.Sprintf("%s=%s\n", "TITLE", title) + _, err = f.WriteString(titleToWrite) if err != nil { - return fmt.Errorf("error writing to commit_message.env file: %s", err) + return fmt.Errorf("error failed to write to GITHUB_OUTPUT file: %s", err) } + + descToWrite := fmt.Sprintf("%s=%s\n", "DESC", description) + _, err = f.WriteString(descToWrite) + if err != nil { + return fmt.Errorf("error failed to write to GITHUB_OUTPUT file: %s", err) + } + return nil }