Skip to content

Create an automated release workflow#149

Merged
JonnyOThan merged 17 commits intoKSPModStewards:release-testfrom
Phantomical:release-workflow
May 8, 2026
Merged

Create an automated release workflow#149
JonnyOThan merged 17 commits intoKSPModStewards:release-testfrom
Phantomical:release-workflow

Conversation

@Phantomical
Copy link
Copy Markdown
Contributor

The github actions secrets have a spacedock password, so we'll need this anyways if we want to upload to spacedock because there is no other way to access it.

@JonnyOThan
Copy link
Copy Markdown
Member

SystemHeat isn't currently on Spacedock, so we don't need to add that.

How about improving the create-release workflow in KSPBT? e.g. including the version number, setting the /p:Version (or some other) property.

@Phantomical
Copy link
Copy Markdown
Contributor Author

I'll work on the KSPBT workflow tonight, then evaluate whether it makes sense to use it here. I'm not really sure if I want to set the version property from the release tag by default just yet, rather than making the csproj the source of truth.

@JonnyOThan JonnyOThan added this to the 0.9 milestone May 7, 2026
@JonnyOThan
Copy link
Copy Markdown
Member

IMO the csproj should not need to be modified in order to create a release. That's just noise in the version history.

In other repos, I have a .version.props file that I include from the .csproj, and then a .versiontemplate file that can generate that one from the update-version.sh file in the workflow. It's not great, but at least there's only one place to change the version and it's not the csproj.

I think I'd rather have the build system pass in the version number, and then the .version.props file uses that if it's set.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not use the KSPBT generation stuff for the .version file?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I can tell if I do that the workflow won't commit the updated version back appropriately? Maybe I need to look at how it works again.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

er I think the idea is that if you do that, the output is in GameData somewhere and treated like a build artifact, i.e. in .gitignore

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was under the impression (perhaps mistakenly) that we wanted to keep this file around for now and point it towards the new file. Is that not the case?

Like I said in my comment below, if that's not the case then this whole thing is a non-issue.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no it's fine, you're right that we probably want to keep it around at least for some time so that people can get notified about a new version

@Phantomical
Copy link
Copy Markdown
Contributor Author

The version file is now automatically generated by building the project. This won't be committed automatically so it will need a manual fix up commit after each release until we entirely remove it from the repo.

If we don't care about AVC back-compat then we can just remove it now and this stops being an issue.

The only thing this is still blocked on at this point is KSPModdingLibs/KSPBuildTools#69

@JonnyOThan JonnyOThan marked this pull request as ready for review May 8, 2026 08:45
@JonnyOThan JonnyOThan changed the base branch from master to release-test May 8, 2026 08:45
@JonnyOThan JonnyOThan merged commit c5d66ef into KSPModStewards:release-test May 8, 2026
1 check passed
JonnyOThan added a commit that referenced this pull request May 8, 2026
* remove version-template-extension

* bump version to 0.9

* reverrt to C#9

* incorporate ksbt_modversion

* changelog back to unreleased

* bump version to 0.9

* Fix typo in version property

* Include version-file input in create-release.yml

Add version file input for release workflow

* Create an automated release workflow (#149)

* Initial release.yml workflow

This just mirrors build.yml for the moment. I'll be adjusting this once
I can get a look at the intermediate artifacts

* Add setup to actually build the release zip

* Fix artifact name

* Properly use multiline blocks

* Fix a typo

* Better compression

* Upload SystemHeat.version as an artifact

* Simplify a few things

* Update to use KSPBT create-release workflow

* Switch version file generation to happen through KSPBT

* Update repository URLs in SystemHeat.version

* Remove version properties from csproj

Removed versioning properties and import statement.

* Update repository URLs in SystemHeat.version

* Delete .github/workflows/release.yml

* Delete Source/SystemHeat.version.props

* Delete Source/SystemHeat.version.props.versiontemplate

---------

Co-authored-by: JonnyOThan <jonnyothan@gmail.com>

* Change version to 'Unreleased' in CHANGELOG.md

Updated changelog to reflect unreleased changes.

* bump version to 0.9.0

* Revise CHANGELOG for unreleased updates

Updated changelog to reflect unreleased changes and fixes.

* bump version to 0.9.0

* set changelog back to unreleased

* langversion to 12

---------

Co-authored-by: github-actions <github-actions@github.com>
Co-authored-by: Sean Lynch <phantom@lynches.ca>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants