rajatjindal / krew-release-bot

bot to bump version of plugin in krew-index on new releases
Apache License 2.0
46 stars 17 forks source link

Trouble getting it to work first time #2

Closed ahmetb closed 4 years ago

ahmetb commented 4 years ago

So I installed this to https://github.com/ahmetb/kubectl-tree/ repo. It has access to my repo.

I already have .krew.yaml: https://github.com/ahmetb/kubectl-tree/blob/master/.krew.yaml

I use GitHub Actions with GoReleaser, so my build artifacts arrive to the repo 2-3 minutes later, since it takes time to build.

I see no pull request created to krew-index repository.

Some things to note, and some suspicions:

I like the experience that I don't have to write YAML for Github Actions. So GitHub Apps are superior in this case, but there's too much of a black-box. I wish users could go to a web UI and see recent deliveries and their logs.

/cc @corneliusweig

rajatjindal commented 4 years ago

Hi Ahmet

thanks for trying this out.

Thanks Rajat Jindal

ahmetb commented 4 years ago
  • yes, we want the first release to be manual by author. As first PR will often need more back-and-forth to get things ironed out. The release-bot will simply ignore if its the first time release.

Let's document this.

  • I checked cloudrun logs, the fact that artifacts are uploaded several minutes later is indeed the issue in this case. we get the webhook notification of new release 'published' and found that no assets available.

You're right, the Release event doesn't seem to be sending additional events when a new asset is uploaded. Assets are almost always uploaded asynchronously (travis CI, circle CI, drone, github goreleaser actions...)

  • I checked cloudrun logs,

This is gonna be a problem. Ideally we need a public page for this project to show "event payloads received" and what was the response to those webhooks (status code, error message).

Whatever you end up implementing, let's make sure it has minimal amount of dependencies (like maybe just a gcs bucket) and someone other than you can easily operate.

corneliusweig commented 4 years ago

I think this is working now, right @rajatjindal? Maybe you can sketch your final approach here.

rajatjindal commented 4 years ago

this is how it works now:

  1. push a new tag to master
  2. github-action like goreleaser builds and uploads the new release
  3. krew-release-bot github-action is triggered, and uses .krew.yaml (in root dir) and releaseInfo to generate new plugin spec file
  4. Makes a POST request to krew-release-bot webhook with the release request
  5. krew-release-bot opens the PR with krew-index repo

Thanks Rajat JIndal

corneliusweig commented 4 years ago

@rajatjindal Do I understand correctly that the same binary is used both in the github action, and as well as a cloud-hosted webhook?

If this is the case it would be nice to separate the two responsibilities in order to make the logic flow clearer.

rajatjindal commented 4 years ago

Sure will do that

On Fri, Jan 10, 2020 at 2:59 PM Cornelius Weig notifications@github.com wrote:

@rajatjindal https://github.com/rajatjindal Do I understand correctly that the same binary is used both in the github action, and as well as a cloud-hosted webhook?

If this is the case it would be nice to separate the two responsibilities in order to make the logic flow clearer.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/rajatjindal/krew-release-bot/issues/2?email_source=notifications&email_token=AAEVN7CART3JA262I7MZCA3Q5A5XJA5CNFSM4J6ZKNM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEITIAZA#issuecomment-572948580, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEVN7AY45EBEXLZAGQ27YLQ5A5XJANCNFSM4J6ZKNMQ .

-- Rajat Jindal | Pune | https://rajatjindal.com | rajatjindal83@gmail.com

rajatjindal commented 4 years ago

I've reported #14 for creating separate binaries. closing this issue, as the original issue has been fixed.

if you think otherwise, please feel free to reopen it.

thanks