!zghijEASpYQWYFzriI:nixos.org

Hydra

391 Members
109 Servers

Load older messages


SenderMessageTime
10 Apr 2022
@tilpner:tx0.cotilpnerhmm, maybe not actually an impurity, as the same -A foo will always lead to the same result, it's just that hydra will pass different -A values...14:17:08
@tilpner:tx0.cotilpneryou make a good point, depending on actual branches names is annoyingly brittle. passing in a tag (or attribute name) would work regardless of git branch and also support evaluation if the input isn't being fetched from git14:18:43
@tomberek:matrix.orgtomberekthat's just because you only intend to turn some jobs on/off, but you COULD make that substantially change behavior and users would have no idea. And the behavior of the same commit will change over time.14:18:57
@tomberek:matrix.orgtombereki think the .version or .branch file is the easiest way to smuggle the branch name in14:19:35
@tomberek:matrix.orgtomberekyou can make your push-to-deployment only depend on the job that matters, not the entire jobset14:25:24
@tilpner:tx0.cotilpnerokay, you've convinced me that source control information should never reach the build, so instead I'd need to communicate a tag/mode/variant to the jobset14:26:11
@tilpner:tx0.cotilpneradding that file to the repo would work, of course, but then you lose the ability of simply pushing the staging branch to the production branch whenever it's ready14:27:59
@tilpner:tx0.cotilpnerwho determines whether #1143 has a chance of being merged?14:28:28
@tilpner:tx0.cotilpner(I'm happy to run a patched hydra, but if the answer is a "this will never be accepted", I'll need to keep looking for a different way to make this work)14:29:11
@tomberek:matrix.orgtomberekwait..... if you have a flow where you push from staging branch to production.... the builds should already be cached14:33:08
@tomberek:matrix.orgtomberekif you built on staging..... .cache it.... then production builds are instant14:33:27
@tilpner:tx0.cotilpnertrue, and in a way it makes sense to test if production builds before allowing it for staging, but staging pushes are going to be much more frequent than production pushes, so that's still a lot of wasted builds14:37:42
@tilpner:tx0.cotilpner * true, and in a way it makes sense to test if production builds before allowing it for staging, but staging pushes are going to be much more frequent than production pushes, so that's still a lot of wasted time, waiting for production builds to finish, just to deploy staging14:39:30
@tomberek:matrix.orgtomberekdepend on the job to complete, not the jobset14:41:49
@tilpner:tx0.cotilpnerdoes hydra allow job prioritisation? if I could make sure the staging variant always builds first, and then rely on the production build being cached from a previous evaluation, that might work14:43:44
@tilpner:tx0.cotilpnerahh, there's schedulingPriority14:45:17
@tilpner:tx0.cotilpner

Slightly prioritizes this job over other jobs within this jobset.

14:45:38
@tomberek:matrix.orgtomberekwhat might be accepted upstream is to specify only particular jobs to be built. Something like "in flake.nix build hydraJobs.production"14:48:52
@tomberek:matrix.orgtomberek(versus, "build every hydraJob in the flake")14:54:50
@tilpner:tx0.cotilpnerthat's a slightly restricted version of https://github.com/NixOS/hydra/pull/1143, so maybe that'll be accepted as well. and graham's reaction in #1154 didn't seem opposed to the feature14:56:13
@tomberek:matrix.orgtomberekYup14:57:00
@tomberek:matrix.orgtomberekAs we get closer to a 3.0 release with stable flakes, hydra support will improve.14:57:31
@tomberek:matrix.orgtomberekEg: better input tracking exposed, or lockless eval, attribute builds, and so forth. 14:58:17
@tilpner:tx0.cotilpner

Lockless eval (with configurability over which inputs to unlock) sounds nice, though very at-odds with the current extremely hermetic evaluation.

Thank you very much for helping me narrow down my options, tomberek, and thank you cransom for describing how you do automatic deployments. I appreciate talking about this issue with someone else, after guessing about for a few days :)

15:00:41
@max.hausch:helsinki-systems.de@max.hausch:helsinki-systems.de joined the room.15:01:42
@tomberek:matrix.orgtomberekanother possibility.... what is the thing that watches the jobsets and triggers a deployment to prod?15:02:57
@tilpner:tx0.cotilpner
In reply to @tomberek:matrix.org
another possibility.... what is the thing that watches the jobsets and triggers a deployment to prod?
for now, it's just a small systemd timer that polls the most recent job output path with curl, but if this setup proves itself, I'm up for switching that for hydra's (dynamic) RunCommand plugin, or even listening for job completions with postgres listen/notify
15:08:43
@casey:hubns.netcransomi'd like to do some things like automatically follow nixos-21.11/release in my deploy jobs, except we (our app code, not nixpkgs) don't have adequate testing to make that an automatic feature. unattended production deployments without a good test gate isn't something i'll do.16:30:37
@casey:hubns.netcransomthe app code between prod/staging doesn't change, but that's a different beast when you get to doing deployments. there's nothing i can cache between staging/production because i deploy fully baked disk images into aws. if it was a generic disk image with different variables pulled in from aws metadata/user-data calls, that's possible.16:32:39
@tilpner:tx0.cotilpner yes, I wouldn't be brave enough to do completely unattended deployments with an unlocked nixpkgs input. at least with application inputs, someone pushed the commit to the application repo that triggered the deployment, but changes to nixpkgs happen all day, even at night, and there'd be no way to react to a broken deployment :c 16:40:54

Show newer messages


Back to Room ListRoom Version: 6