Skip to content

PelicanPlatform/PelicanBuildServer

Repository files navigation

Release File Server

Downloads files for a Github repositories releases and serves them by semver tag.

Usage

This website will auto update daily and provides a webhook for manual updates. Files are served by NGINX and the file update functionality is provided by FASTAPI.

Meta

/meta/metadata.json contains version mappings and update timing.

Webhook

A webhook is provided to manually toggle an update post release.

https://pelican-release-server.chtc.chtc.io/api/docs

File Scheme

Saves files by semver tag in the following directory structure:

All Releases

Per release directories, file names include the release tag.

/X.Y.Z - Directory for a single release

Tracking Releases

Directories to track the lifecycle of a release, always pointing to the latest applicable release. The files in the directories are symlinked and renamed to omit the release tag. The only file not symlinked is checksums.txt which is copied and updated to match the version-less names of the files. version.txt allows verification of the release version.

  • /X.Y - Directory for latest minor release
  • /X - Directory for latest major release
  • /latest - Directory for latest release

Build, Run, Release

Build

docker build -t release-webhook .
docker run -it -p 8080:8000 --env-file example.env -v ${PWD}/releases:/srv/releases release-webhook

Release

docker build --platform linux/amd64 -t hub.opensciencegrid.org/opensciencegrid/release-webhook .
docker push hub.opensciencegrid.org/opensciencegrid/release-webhook

Run the NGINX server that sits in front of the webhook

docker run -it -p 80:80 --env-file example.env -v ${PWD}/releases:/srv/releases  -v ${PWD}/nginx.conf:/etc/nginx/templates/nginx.conf.template nginx