CI 2 minute window

Alright, I've got a Gitlab CI pipeline I'm reasonably pleased with as a result of yesterday's efforts. There's 1 glaring problem with it though. The pipeline is triggered by pushing or creating a new tag. At this point in time in the codebase the manifest would have been updated with a new version and download url pointing at the release that will be created. The CI job takes ~2 minutes to complete. During that 2 minute window, anyone who tries to update the package gets an error "Not Found" because the release has no assets yet. I'm interested in peoples' workarounds for this issue.
C
Calego•976d ago
GitLab
.gitlab-ci.yml · addCiWorkflow · A Krigline (Calego) / Foundry VTT ...
An implementation of the Dungeons & Dragons 5th Edition game system for Foundry Virtual Tabletop (http://foundryvtt.com). This work is permitted under the Open...
C
Calego•976d ago
This is particularly frustrating because on GH, this problem doesn't exist. I would point the package manifest at releases/latest and that wouldn't exist until after the job ran. Some options I can think of: 1. Commit the new download url and version as part of the CI job. 2. Figure out some way to mock a "latest" release with a stable url to host the manifest.
UU
Unknown User•976d ago
C
Calego•976d ago
a latest tag which is re-pointed at the newest one is interesting
UU
Unknown User•976d ago
C
Calego•976d ago
releases and tags are so confusing...
UU
Unknown User•976d ago
C
Calego•976d ago
yeah that sounds like an order of operations would fix
UU
Unknown User•976d ago
C
Calego•976d ago
right, I'll see if I can mock that up If this were any package but dnd5e I might not care and say it's good enough to have a 2 minute window.
UU
Unknown User•976d ago
C
Calego•976d ago
Thought I am concerned about the Bazaar, it might hiccup PF2e has this:
"manifest": "https://gitlab.com/hooking/foundry-vtt---pathfinder-2e/-/jobs/artifacts/release-0.8.x/raw/system.json?job=build",
"manifest": "https://gitlab.com/hooking/foundry-vtt---pathfinder-2e/-/jobs/artifacts/release-0.8.x/raw/system.json?job=build",
UU
Unknown User•976d ago
C
Calego•976d ago
So that looks like it's pointed at the artifacts of a job on a branch? not per tag
UU
Unknown User•976d ago
C
Calego•976d ago
Ok they run this on push to their main branch so that'd be a branch pipeline, where mine is a tag pipeline
UU
Unknown User•976d ago
C
Calego•976d ago
hahaha so sorry we're adding compendia <-> json in the current dnd5e milestone. That's tipped the scales towards "automated release CI" and I'm jumping on this opportunity to figure out gitlab ci
UU
Unknown User•976d ago
C
Calego•976d ago
We'll have both committed, but we only want to distribute the db files in the zip. And we want to ensure they're the most recently compiled at time of release.
UU
Unknown User•976d ago
C
Calego•976d ago
dramatically easier to diff and therefore maintain
UU
Unknown User•976d ago
C
Calego•976d ago
plus, fixing typos could be done in-json and wouldn't need to open foundry at all to contribute
UU
Unknown User•976d ago
C
Calego•976d ago
something like that, I think we ended up passing things through nedb package for extra safety
UU
Unknown User•976d ago
UU
Unknown User•976d ago
C
Calego•976d ago
if you're interested that's all Arbron's baby
E
Ethaks•976d ago
Pretty-printed JSON also allows for multiple people to edit different parts of a json file without them interfering with each other (e.g. a migration + a typo fix etc.)
C
Calego•976d ago
oh i maybe just did a bad does pushing a tag in a ci job trigger a ci job? we'll find out! the push failed cause it didn't have permission to push... dafaq gitlab omg i have to use a PAT to push in a CI job are you for real gitlab?
DT
Daniel Thorp•976d ago
DT
DT
Daniel Thorp•976d ago
Maybe could drop some info on the dnd5e team's use-case for this? This would really help content creators working in groups who don't have the technical knowledge to set up the CI themselves World Smiths is also very interested in getting this set up The issue with Atomizer is that the IDs can change which makes it a suboptimal solution. I would be curious if you found a solution to this?
C
Calego•976d ago
I'm honestly not sure what the details of the merged solution are, you could holler at arbron in #dnd5e-dev probs
DT
Daniel Thorp•976d ago
Can I ping them here? So I don't have to repeat myself xD
C
Calego•976d ago
Not exactly related to the ci topic tho
UU
Unknown User•976d ago
C
Calego•976d ago
Ahhhhh interesting! Aaaand project access tokens aren't available for free gitlab.com users. 😬 this is really frustrating coming from github where all of this 'just works'... I also can do something like this:
workflow:
# Run this workflow when a "release-" tag is pushed or created
rules:
- if: $CI_COMMIT_TAG =~ /^release-/
workflow:
# Run this workflow when a "release-" tag is pushed or created
rules:
- if: $CI_COMMIT_TAG =~ /^release-/
Want results from more Discord servers?
Add your server
More Posts
GitLab CI PipelinesToday's project is Gitlab CI. Wow me with your pipelines if you got em.Storybook Shennanegins@wyrmisis I have a headcannon for you, one who also uses Storybook. _What if_ we could load foundryjsxDammit I want this...react librarySo far I've seen Vue 2, Vue 3, Alpine, and Svelte pulled into Foundry. No one has yet been crazy enoweb componentsA comment @n1xx1 made over in #development-basics (https://discord.com/channels/732325252788387980/7UI element JS Classeshttps://discord.com/channels/732325252788387980/734922093967310910/882979923483037696 @wyrmisis > Imid-milestone ping feedback@dnd5e **No Action Required** Wanted to ping you to make you aware that the 1.5.0 milestone is >50%Hot ReloadingIs there a way to do something like hot module reloading/live reloading on change for Foundry?Tagger Code ReviewWould anyone be keen to code review Tagger? I'd like to git better 😄 https://github.com/Haxxer/Founsocket woesnot the socket firingpreUpdateSo for some reason ItemPF#_preUpdate changes aren't sticking.. what is PF1 doing that prevents this?mergeObject`mergeObject` is a beast of a function which lets you smash two objects together and that options arselect in sheetAlso, is the data actually saved on the actor? You can inspect the data in the console opened with FIC 5e DocsI'm not looking to ping about this but for anyone who sees this: I'm interested to know if anyone hecustom hud elementMaybe I'm missing something simple here. I'm making my own custom hud element (NOT based on a FoundrCover@badgerwerks how does the cover application for 5e helpers work? I know you do black magic to calculGitpod WorkflowHas anyone figured out a codespaces workflow?Dynamically get Object property from user inputAnyone know how I can do this? I have an Actor (`myactor`) and I'd like to have an input box which autopublishI'm trying to use @varriount's AutoPublish, but I keep getting this error. Any ideas?https://github.symlinking foundry.js and vscodeIs this something you were able to do with vscode? I'm trying right now with both WSL2 symlinks and