Infinity Auto Packager - automatically generate mod packages when you publish a release
ALIEN
Member Posts: 1,271
Infinity Auto Packager
What does this tool do?
A tool that automatically generates Infinity Engine mod packages when you publish a release.
What are Infinity Engine mod packages?
They are standardized, universal and cross-platform Infinity Engine Mod Packages
General info
Example: ( repository )
How to do the one-time installation inside your mod repository?
- by adding to the repository
- by using the Github webpage directly
How to use it?
If you have additional questions, feel free to ask
What does this tool do?
A tool that automatically generates Infinity Engine mod packages when you publish a release.
What are Infinity Engine mod packages?
They are standardized, universal and cross-platform Infinity Engine Mod Packages
- .zip package
It contains the latest WeiDU executable for Windows and macOS (for Linux is impossible) and .command file for macOS. - .iemod package
The IEMOD format is intended to be a platform-independent distribution format for modifications for games using the Infinity Engine. The .iemod packages are used mainly by mod managers. Among other things, they offer a "double-click at file>extract>install" feature.
General info
- can be combined with the ModRelease tool
- the package name is taken from mod metadata ini file
- the package version is taken directly from the tp2 file
- packages always have the latest WeiDU version, at the time when they were created
- the tool is a serverless microservice - it will work as long GitHub Actions will exist in any form
Example: ( repository )
How to do the one-time installation inside your mod repository?
- by adding to the repository
- Mod directory structure: Example\Example.tp2
- Git repository structure: must have a top-level mod data folder
Example\... Example\Example.tp2 README.md
- Download Infinity Auto Packager repository, extract InfinityAutoPackager-master.zip file
- Copy '.github' folder into your mod repository
- Commit and push changes to the remote repository
- by using the Github webpage directly
- Open the main page of your mod, locate the "Create new file" button
- Paste this into the filename
.github/workflows/InfinityAutoPackager.yaml
, do not skip dot at the beginning - Open "Infinity Auto Packager" file, copy all content and paste it into the editor, then click "Commit new file" in order to save changes
How to use it?
- Publish release
If you have additional questions, feel free to ask
Post edited by ALIEN on
4
Comments
Is this meant to automate the creation of a Windows / macOS / Linux package of the mod in question?
Yes. The .zip package contains weidu executable for Windows and macOS (for Linux is impossible) and .iemod has no executables because Mod Managers handle them. I've added this info to the first post.
Although I have the slight suspicion that this might be part of your efforts to bringing modders to upload their mods to GitHub.
Ha! It looks like but I will also release the 'local' version of this tool for people who just want to have nice packages uploaded whenever they want
Anyway, I'm glad that you enjoy it, given the number of mods which you modernized and updated.
But apparently, adding a folder to my repo to make the tool work is too complicated for me. Would you have a look at why the packages do not get added to the new I4E release here? Help would be very appreciated.
Can you open https://github.com/Gibberlings3/Imoen4Ever/settings/actions and see if "Enable local and third-party Actions for this repository " is enabled?
I need you to perform some diagnostic:
- Try to create a 'test' release inside you fork repo: https://github.com/Gitjas/Imoen4Ever/releases - it should definitely work for you.
If that will work, you need to 'republish' v5beta release of the Gibberlings3/Imoen4Ever:
1. Remove current 'execution of the Infinity Auto Packager', nothing is really lost, it's just cleanup
2. Edit v5beta release: https://github.com/Gibberlings3/Imoen4Ever/releases/edit/v5beta
3. Remove the associated tag from the release:
and click 'Update release'. That way, the release will be set as 'Draft'.
4. Open 'v5beta draft release' again, set 'v5beta' tag again and click 'Update release'
5. The release should be republished again and the new execution of the Infinity Auto Packager should trigger
Let's hope that it was a temporary hangup on the GitHub side.
Maybe it is because G3 GitHub is an organization and I am not an Owner? You already said that writing rights should suffice, I'm just guessing because it was no problem to tag a test release in my own GitHub Repo.
I'll come back to this after I tagged a new release at G3 in the future.
For the record, in case this error will occur again: you don't have to create a new release/new tag. You just have to follow the instructions above. The release can be set to 'Draft' and published again or deleted and recreated in order to trigger the new attempt to create packages.
The Beta 0.2 contains fixes so that was no extra work in that case.
I am a bit unhappy with the naming scheme of it, though. That or I am doing something wrong when versioning my releases.
For example, for this repository the automated generated packages (for this version) ended up having the name "-veaob.1.zip" and "-veaob.1.iemod". I uploaded a renamed package by hand.
For this repository, the name (for this version) became "grey-the-dog-npc-for-bgt-bgeesod-bgiiee-and-eet-5.zip" which is a bit long.
I assume the tool goes for something like repo name+version number, so I am not sure what happened in these instances.
Do I need to do something differently or is this something you can fix on your end? Is there an error in the InfinityAutoPackager.yaml I am using maybe?
If the ini file does not exist, I guess it takes the mod folder name.
So the Grey mod name was because I chose a stupid mod name in the .ini and the name for BST was because I forgot to put in an .ini yet. @ALIEN I can live with that.
Gwendolyne is right, it takes the name from ini. I already saw that you have altered 'Grey the Dog NPC', added new guidelines to the wiki.
My motivation for use ini was to skip 'yet another place' where you would need to provide 'customized package name'
BTW: That version name for "Balduran's Seatower" mod is really awful. It doesn't mean anything. It should be number with 'alpha' or 'beta' to give players some indication of what they are dealing with.
Besides, naming it alpha/beta.xy wouldn't have helped with the name the Infinity Auto Packager gave the packages which lacked the actual mod name.
That's a bug and it will be fixed.
Any advice on how to add that to the workflow?
Thanks!
EDIT: Nevermind! Solved it!
I've played with it a bit and come up with a general solution that runs only when README.md file is modified and doesn't require constant modification of 'MOD_FOLDER' name. It should work for standard mod directory structure aka: MyMod/MyMod.tp2.
https://www.gibberlings3.net/forums/topic/31131-infinity-auto-packager-automatically-generate-mod-packages-when-you-publish-a-release/?do=findComment&comment=328230