Starter for making your own Package Listings, including automation for building and publishing them.
Once you’re all set up, you’ll be able to update the source.json
file, and generate a listing which works in the VPM for delivering updates for all the listed packages.
You’ll need to edit some of the files in this template, starting with source.json
:
name
, id
, author
, description
, etc.githubRepos
..zip
file, specify them in packages
.
githubRepos
or packages
if you’re not using them.Whenever you make a change to the main
branch, or when you trigger it manually, the ‘Build Repo Listing’ action will make a new index of all the releases available and publish them as a website hosted fore free on GitHub Pages. This listing can be used by the VPM to keep your package up to date, and the generated index page can serve as a simple landing page with info for your package. The URL for your package will be in the format https://username.github.io/repo-name.
The contents of the Website
directory can be customized to change the appearance of the landing page. Most of the information will be automatically filled in with information from source.json
. Customizing the landing page by hand is not required.
You are welcome to make your own changes to the automation process to make it fit your needs, and you can create Pull Requests if you have some changes you think we should adopt. Here’s some more info on the included automation:
This is a composite action which builds a vpm-compatible Repo Listing based on the items you’ve added to your source.json
file. you’ve created. In order to find all your releases and combine them into a listing, it checks out another repository which has a Nuke project which includes the VPM core lib to have access to its types and methods. This project will be expanded to include more functionality in the future - for now, the action just calls its BuildRepoListing
target, which calls RebuildHomePage
when it completes. If you wanted to make an action that just rebuilds the home page, you could call that directly instead - just copy the existing call and replace the target names.