All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
NPM workspaces exist now, which means we can make working with this monorepo of GitHub actions much less unweildy. The problem with that is that the folder structure is different, so those who want to update to the latest version of the previous set of actions will need to update the path in their uses
declaration.
- Breaking change. Moved folders for all existing actions into the
dev
directory to allow for better monorepo organization by topic. Consumers will need to update their yaml files.
Ran into a snag with the previous release related to a difference between the octokit API and the releases REST API.
- Previously I attempted to create a release with
make_latest
, however it appears that Octokit's createRelease method doesn't currently support that. I'm going to leave it alone for now.
A quick change to the create_release
function to ensure that it supports prereleases automagically. This will allow you to specify a tag like v0.3.1-alpha.1
and have that create a GitHub Prerelease, which you can have different actions for if you prefer.
- Updated the
create_release
action to support prereleases based on NPMs semver spec.
Some days, you realize that you wrote a bunch of stuff and never tested it. This is one of those days.
- Bugfix: The
poetry_install
action failed to set the poetry env correctly, resulting in an inability to then use that env for commands later. The reason for this is that I was relying on the output from thesetup-python
step to set the poetry envrionment version. However, I've now shifted to just using the same input value thatsetup-python
is relying on, making it simpler and less likely to fail (I hope). - Updated Action:
poetry_install
will now only install and configure Python and Poetry, but will not take the extra step of installing the dependencies itself. - Updated Action:
poetry_export
once leveragedpoetry_install
as its first step to simplify production deployments to SaaS but combining the install of production dependencies with the requirements.txt output, but that turns out to not be necessary sincepoetry export
outputs the production requirements without needing additional configuration. Right now I'm not going to support theextras
flag which adds value to this action, but I may consider doing that in the future
Another day, another release of birdcar/actions.
- New Action:
poetry_install
. Poetry is a way of managing python packages, and this action automate the setup and caching of Python, Poetry, and the dependencies specified in yourpoetry.lock
file. - New Action:
poetry_export
. A significant amount of both my side projects and the internal tools I develop professionally are deployed on Heroku. At the moment, Heroku requires all Python projects to have arequirements.txt
file in the root of the project repository for dependencies to be installed (though that looks to be changing with their move to CloudNativeBuildpacks in the near term future 🤞🏽). This action will use Poetry to generate therequirements.txt
file for you, and then commit it to the repository to ensure that you don't need to manage it.
- Updated Action:
deploy_to_heroku
. Initially, thedeploy_to_heroku
action would also checkout the repository for you. This is actually not great for composing actions together; resulting in either duplicate work (i.e. checking the repository out twice) or odd environmental changes. This update will remove the checkout step and leave that up to the consumer.
- Deleted Action:
setup_poetry
. As it turns out, theactions/setup-python
action has built in dependency caching! It needs to be composed with a few other steps to be useful, but the bulk of the work in thesetup_poetry
was manually performing that caching step, so it's no longer needed. Usepoetry_install
moving forward, and see the readme in that directory for usage instructions.
First release of my personal actions repository. Read the Added section to see the list of actions available in this release, along with a short description. For more information, see the README in each of the action folders.
- New Action:
create_release
. Have you also written the same "Automatically publish a release when I create a new tag" GitHub action in almost every project you've created? Well now you don't have to! For the low, low price of "being forced to use keepachangelog's Changelog format" you, too can now stop worrying and just use this action. - New Action:
setup_poetry
. Poetry is a wonderful package.. manager? Orchestrator? Project manager? Whatever it is, it makes working with Python dependencies more like usingnpm
,bundle
, orcargo
. This action will help you take advantage of that and cache the dependencies as part of your GitHub Actions cache to speed up your test runs. - New Action:
poetry_requirements
. Use Poetry, but need to generate arequirements.txt
file for use with Heroku or some other PaaS?poetry_requirements
will get you sorted - New Action:
deploy_to_heroku
. Heroku has its own deployment pipeline, but if you want to use GitHub Actions for CI or control the flow inside of GitHub, you're out of luck. Fortunately, this action will allow you to control your Heroku application deployments inside GitHub actions.