markcheret / footnotes

footnotes aims to be the all-in-one solution for displaying an automatically-generated list of references on your WordPress Page or Post.
https://wordpress.org/plugins/footnotes/#description
GNU General Public License v3.0
8 stars 6 forks source link

Automate releases using GitHub Actions #89

Open Rumperuu opened 3 years ago

Rumperuu commented 3 years ago

Currently releasing still requires human input. Once we are happy that the scripts are not prone to errors, we can automate this fully via GitHub Actions.

Blocked by #88

markcheret commented 3 years ago

You can enable the automation already by releasing to /branches/gh-automation on SVN so I can test the resulting product from there.

Rumperuu commented 3 years ago

You can enable the automation already by releasing to /branches/gh-automation on SVN so I can test the resulting product from there.

I've added a step to copy the code from /trunk to /branches/gh-automation in #90 — I'm going to leave it on draft for the moment though, until I've got stylesheet minification automated. But if you want to checkout the release-automation branch and try it out, you can do.

If you're not sure how to minify the stylesheets during the build process, you can unzip the files in this archive into the /css/tmp directory: minified-stylesheets.zip

markcheret commented 3 years ago

Great, thanks. @Rumperuu What will be the credentials for auto-releasing to SVN? @pewgeuges As soon as this is closed, all versions of the plugin will only be released to WordPress through GitHub.

Rumperuu commented 3 years ago

@Rumperuu What will be the credentials for auto-releasing to SVN?

I've not looked too much into it at this point, but are you able to create arbitrary SVN commit access credentials or is it tied to WordPress Plugin Directory users that are set up as Contributors? If the former is possible, then it would be best to set up a set of GitHub-specific credentials and use them.

If it's not, then either we could use your creds (I think you can set environment variables in GitHub that GitHub Actions can use but only you can view, but don't quote me on that) or you could add us as SVN contributors and we can use our own credentials (but as this provides no protections against someone committing directly to the SVN repo. outside of the established workflow, this should only the option of last resort).

@pewgeuges As soon as this is closed, all versions of the plugin will only be released to WordPress through GitHub

I think this is asking for trouble in terms of the two codebases diverging further. git svn rebase is already pretty much unusable, so I would recommend that we adopt the GitHub-only development workflow immediately (albeit with releases handled manually for the time being).

markcheret commented 3 years ago

@Rumperuu What will be the credentials for auto-releasing to SVN?

I've not looked too much into it at this point, but are you able to create arbitrary SVN commit access credentials or is it tied to WordPress Plugin Directory users that are set up as Contributors? If the former is possible, then it would be best to set up a set of GitHub-specific credentials and use them.

It has to be a wordpress.org user.

If it's not, then either we could use your creds (I think you can set environment variables in GitHub that GitHub Actions can use but only you can view, but don't quote me on that)

yes that is possible. OK. I'm looking up how it can be done/how others are doing it :)

or you could add us as SVN contributors and we can use our own credentials (but as this provides no protections against someone committing directly to the SVN repo. outside of the established workflow, this should only the option of last resort).

Nah, I don't like that :) Worst case, I'm gonna create a gmail and Wordpress account specifically for footnotes :)

@pewgeuges As soon as this is closed, all versions of the plugin will only be released to WordPress through GitHub

I think this is asking for trouble in terms of the two codebases diverging further. git svn rebase is already pretty much unusable, so I would recommend that we adopt the GitHub-only development workflow immediately (albeit with releases handled manually for the time being).

It's already clear that 2.7.0 was the last direct-to-SVN commit. Sorry for the confusion @pewgeuges and @Rumperuu

markcheret commented 3 years ago

for inspiration: https://gist.github.com/philbuchanan/8188898 looks like a local script, though.

markcheret commented 3 years ago

for inspiration: https://gist.github.com/kasparsd/3749872

markcheret commented 3 years ago

for inspiration: https://github.com/kasparsd/wp-deploy

markcheret commented 3 years ago

once #88 is alive and well... wanna hop on a call and tackle this together? @Rumperuu

Rumperuu commented 3 years ago

once #88 is alive and well... wanna hop on a call and tackle this together? @Rumperuu

Can do. I'm hoping to get it done over the weekend, if not earlier.

markcheret commented 3 years ago

F YEAH! bitmoji

Rumperuu commented 3 years ago

Currently, @markcheret @lolzim and I all have SVN commit access, so bespoke credentials are unnecessary. Definitely one to review later though, as that approach won't scale if the team grows.

lolzim commented 3 years ago

And we hope it'll grow :)

markcheret commented 3 years ago

It sure will. Fair enough regarding the release credentials.

markcheret commented 3 years ago

I have added my SVN credentials to the repo as GitHub repo secrets. Named as referenced in the release_handler.yml

markcheret commented 3 years ago

@Rumperuu I saw that easy-footnotes is also hosted here on GH and using the same GH action (I believe) to deploy to WP. https://github.com/jasonyingling/easy-footnotes/blob/master/.github/workflows/deploy.yml

Can you please enable our deployment/release automation for 3.0 already (on PR)? No matter if it works fully or no...

markcheret commented 3 years ago

@Rumperuu to allow our translators to provide translation for the coming version, we need to deploy to the WP SVN as soon as feasible, so people can get started translating the development version.