cmancone / akeyless-action

MIT License
6 stars 5 forks source link

Release Time with Tag #6

Closed LanceMcCarthy closed 2 years ago

LanceMcCarthy commented 2 years ago

Hi Conner! Everything seems to be ready for primetime, there are only a couple things remaining.

Before I go into the details, If you don't want to have to worry about publishing or the small details, I am happy to hop on as a collaborator and maintainer. I am a Microsoft MVP with plenty of experience publishing trusted and relied-on Actions to the GitHub Marketplace. I can handle all the logistics on publishing and inner-dev loop details. You can handle the guts of the workflow that interacts with the AKeyless & AWS backend.

I can propose a couple options for publishing collaboration to you:

To give you confidence, my fork is already being used in other repo pipelines and providing the expected results:

image

If you just want to get this out the door, here are the tasks left to do:

Remaining Tasks

1) Update the ci.yml workflow to use your example's Access ID

I mentioned the details of this at the end of #5... but since that's closed & merged, it's better to continue the conversation here. As a small tweak before making the release branch and get everything up and running.

I would also add a badge to the README for the status of the workflow. You can snag that quickly on the Actions page, then select the CI action, then use this button:

image

2) Publish a new release with a release tag

The v2 tag doesn't work, so I was curious why and found there are only tags for 1.0 ad 1.2 => https://github.com/cmancone/akeyless-action/tags

Can you please create a release with a semantic versioned tag? Here are the exact steps to get a release available for general public use:

  1. Create a new branch from main and name it v2.1
  2. Go to the Releases page and create a new release
    1. Select the v2.1 branch as the source branch
    2. Create a new tag v2.1 (don't worry about the warning that you have branch with that tag)
    3. Finish the description

Aligning major version tag with minor releases

When publishing minor and patch releases, it is standard practice to always give the developer the latest minor/patch version if they only use the major version tag (e.g., they use cmancone/akeyless-action@v2 they should actually be getting 2.1.

After you've published v2.1, you should also force-push the v2 tag on top of the v2.1 tag. Here are the steps to move the v2 tag:

  1. Open the repository locally, switch to the v2.1 branch and open the project in a terminal
  2. Move the main version number tag this same commit v2.1 is on git tag -a -f v2
  3. Push the changes to GitHub git push --tags --force
  4. Go back to main git checkout main (to prevent accidental changes on the release branch)

Thanks!

LanceMcCarthy commented 2 years ago

Hi Connor, don't worry about tagging it or release management. I've gone ahead and put together everything, added linting, formatting and CI verification into my fork and made that tag available for downstream users. I can worry about the overhead of publishing and dependency maintenance, you can just focus on any features you may want to add.

I plan on adding in some additional features and niceties over time and will be sure to open any PRs for you if you want them. Though, it's important to note that the file structure of the repo has changed (see the details in the 1st item), if you want to migrate to that, can open a PR for your repo to catch up to v2.2

Note: I gave you authorship credit in the published version, but let me know if you'd like me to remove you from it in the next release. I know some folks don't want their username in published work, but I'd need your explicit request because it feels wrong to remove you otherwise (regardless of the license type).

[Edit] I initially attempted to migrate this to Typescript, but I found out after a few hours of work that there are no @types for either akeyless library. So that was a waste of time :/ but I did open a request in the hopes that Akeyless publishes @types/akeyless and @types/akeyless-cloud-id, this would be a really nice quality of life improvement because I can ditch the cached node_modules folder.