Axel von Bertoldi activity https://gitlab.com/avonbertoldi 2026-03-17T19:02:30Z tag:gitlab.com,2026-03-17:5214375773 Axel von Bertoldi deleted project branch avonbertoldi/curl-fail-on-404 at GitLab.org / ci-cd / runner-tools / gitlab-runner-package-tests 2026-03-17T19:02:30Z avonbertoldi Axel von Bertoldi

Axel von Bertoldi (f5ad0734) at 17 Mar 19:02

tag:gitlab.com,2026-03-17:5214375547 Axel von Bertoldi accepted merge request !8: Fail when the package we're downloading does not exist at GitLab.org / ci-cd / runner-tools / gitlab-runner-pack... 2026-03-17T19:02:25Z avonbertoldi Axel von Bertoldi

Jobs like https://gitlab.com/gitlab-org/ci-cd/runner-tools/gitlab-runner-package-tests/-/jobs/13531483010 get a lot further than they should because downloaded a package succeeded when it should have failed.

tag:gitlab.com,2026-03-17:5214375525 Axel von Bertoldi pushed to project branch main at GitLab.org / ci-cd / runner-tools / gitlab-runner-package-tests 2026-03-17T19:02:25Z avonbertoldi Axel von Bertoldi

Axel von Bertoldi (ba41d42b) at 17 Mar 19:02

Merge branch 'avonbertoldi/curl-fail-on-404' into 'main'

... and 1 more commit

tag:gitlab.com,2026-03-17:5214373257 Axel von Bertoldi commented on merge request !8 at GitLab.org / ci-cd / runner-tools / gitlab-runner-package-tests 2026-03-17T19:01:40Z avonbertoldi Axel von Bertoldi

@GitLabDuo I tested this locally, and --fail or --fail-with-body, and --show-error all result in the same output, so adding --show-error doesn't provide any benefit. Adding --fail is also enough to cause the script to abort immediately, so IMO this is good enough.

tag:gitlab.com,2026-03-17:5214352243 Axel von Bertoldi opened merge request !8: Fail when the package we're downloading does not exist at GitLab.org / ci-cd / runner-tools / gitlab-runner-packag... 2026-03-17T18:55:05Z avonbertoldi Axel von Bertoldi

Jobs like https://gitlab.com/gitlab-org/ci-cd/runner-tools/gitlab-runner-package-tests/-/jobs/13531483010 get a lot further than they should because downloaded a package succeeded when it should have failed.

tag:gitlab.com,2026-03-17:5214352025 Axel von Bertoldi pushed new project branch avonbertoldi/curl-fail-on-404 at GitLab.org / ci-cd / runner-tools / gitlab-runner-package-tests 2026-03-17T18:55:01Z avonbertoldi Axel von Bertoldi

Axel von Bertoldi (f5ad0734) at 17 Mar 18:55

Fail when the package we're downloading does not exist

tag:gitlab.com,2026-03-17:5214312594 Axel von Bertoldi commented on merge request !435 at GitLab.org / Step Runner 2026-03-17T18:43:34Z avonbertoldi Axel von Bertoldi

onRunCompletion() already referenced stepResult members without checking if the latter is nil before this change, so this is not new behaviour. Still, it would not hurt to do nil check here or in Run before calling onRunCompletion.

tag:gitlab.com,2026-03-17:5214299351 Axel von Bertoldi commented on merge request !435 at GitLab.org / Step Runner 2026-03-17T18:39:29Z avonbertoldi Axel von Bertoldi

Indeed @timofurrer, the point of this type is to provide a stable public API and hide the implementation details, in this case PB/gRPC.

tag:gitlab.com,2026-03-17:5214127190 Axel von Bertoldi commented on merge request !440 at GitLab.org / Step Runner 2026-03-17T17:48:23Z avonbertoldi Axel von Bertoldi

Claude Code itself had this to say about this section:

  1. glab mr create IID extraction could be more explicit

Step 6 says "Capture the MR URL and IID from the output" but glab mr create outputs a URL like https://gitlab.com/.../merge_requests/440. Extracting the
IID requires parsing the URL (taking the last path segment). Step 7 relies on this IID, so it's worth showing how to extract it, e.g.:

MR_URL=(glab mr create ... | tail -1) MR_IID=(echo "MR_URL" | grep -oE '[0-9]+')

It clearly knows how to do this, so it's really giving instructions to itself 🤷?

tag:gitlab.com,2026-03-17:5214079447 Axel von Bertoldi commented on merge request !440 at GitLab.org / Step Runner 2026-03-17T17:34:47Z avonbertoldi Axel von Bertoldi

this is dangerous if your working branch's upstream is anything other than the same name as thee working branch. A safer version is git push origin <branch-name>:<branch-name>. E.g. I always have origin/main as my working branch's upstream, and git push would attempt to push to origin/main.

tag:gitlab.com,2026-03-17:5214069167 Axel von Bertoldi commented on merge request !440 at GitLab.org / Step Runner 2026-03-17T17:31:43Z avonbertoldi Axel von Bertoldi

A few notes:

  1. we can just use --assignee=@me here and glab will do the right thing
  2. if there is a related issue, add --related-issue and maybe --copy-issue-labels
  3. add --remove-source-branch
  4. My script explicitly adds DUO as a reviewer; not sure if that's necessary anymore.
tag:gitlab.com,2026-03-17:5214067853 Axel von Bertoldi commented on merge request !440 at GitLab.org / Step Runner 2026-03-17T17:31:19Z avonbertoldi Axel von Bertoldi

Title should be 50 characters or less. The description should be wrapped at 72 characters, but not cut words, urls or code snippets.

tag:gitlab.com,2026-03-17:5213822481 Axel von Bertoldi commented on epic #15074 at GitLab.org 2026-03-17T16:31:35Z avonbertoldi Axel von Bertoldi

@cam_swords With Dogfood Step images in Steps Pipeline (step-runner#234 - closed) closed I think we can close this epic. If you disagree feel free to reopen.

cc @nicolewilliams

tag:gitlab.com,2026-03-17:5213822085 Axel von Bertoldi closed epic #15074: GitLab Functions supports multiple operating systems at GitLab.org 2026-03-17T16:31:30Z avonbertoldi Axel von Bertoldi tag:gitlab.com,2026-03-17:5213816650 Axel von Bertoldi deleted project branch avonbertoldi/oci-functions at GitLab.org / Step Runner 2026-03-17T16:30:12Z avonbertoldi Axel von Bertoldi

Axel von Bertoldi (47f22286) at 17 Mar 16:30

tag:gitlab.com,2026-03-17:5213815014 Axel von Bertoldi commented on issue #234 at GitLab.org / Step Runner 2026-03-17T16:29:49Z avonbertoldi Axel von Bertoldi

With Use OCI version of `create_gitlab_release` Func... (!436 - merged) merged I'm calling this done. Closing issue.

tag:gitlab.com,2026-03-17:5213814238 Axel von Bertoldi closed issue #234: Dogfood Step images in Steps Pipeline at GitLab.org / Step Runner 2026-03-17T16:29:38Z avonbertoldi Axel von Bertoldi tag:gitlab.com,2026-03-17:5213813984 Axel von Bertoldi accepted merge request !436: Use OCI version of `create_gitlab_release` Function at GitLab.org / Step Runner 2026-03-17T16:29:35Z avonbertoldi Axel von Bertoldi

This MR uses the elsewhere created OCI version of the create_gitlab_release Function,a dn deletes the local version. I've also bumped the version of two other OCI Functions, though neither have changed functionally.

I have tested this Function works by using it to create new releases of the changelog and upload-to-package-registry Functions.

With this I'm calling #234 done. There's still a bit more work to do in this area, but I think we're sufficiently dogfooding OCI Functions to claim as much.

Possible future work

  • New rc_version Function
  • Migrate sign_files Function in step-runner to an OCI Function
  • Move build and promote Functions out of step-runner into their own OCI Functions.

Closes #234

tag:gitlab.com,2026-03-17:5213813666 Axel von Bertoldi pushed to project branch main at GitLab.org / Step Runner 2026-03-17T16:29:30Z avonbertoldi Axel von Bertoldi

Axel von Bertoldi (4d4035b2) at 17 Mar 16:29

Merge branch 'avonbertoldi/oci-functions' into 'main'

... and 4 more commits

tag:gitlab.com,2026-03-17:5213524477 Axel von Bertoldi commented on merge request !440 at GitLab.org / Step Runner 2026-03-17T15:26:46Z avonbertoldi Axel von Bertoldi

@cam_swords I've had a script to do this that is quite similar, and does a few more things that we might want here:

  1. if your branch name includes a 4 or 5 digit number (like avonbertoldi/12345/do-the-thing), take that number as a issue ID in the same project. I would require everyone follow some kind of branch naming convention (which is not a bad idea IMO).
  2. show a list of team members to select, and assign them as reviewer(s).
  3. in addition to adding the core step-runner labels, show a list of additional labels to add (mostly for bug/maintenance/feature and related sub-tags).
  4. add the currently active milestone to the MR.
  5. after creating the MR, add an in-review label to the associated issue.

Here it is for reference:

#!/bin/bash

ME="avonbertoldi"
ISSUE_RE="$ME/([0-9]*)/"
ISSUE=""

LABELS="devops::verify,group::runner,section::ops,runner::core,workflow::ready-for-review"
EXTRA_LABELS=(
    "type::bug"
    "bug::availability"
    "bug::functional"
    "bug::performance"
    "bug::transient"
    "bug::vulnerability"
    "type::feature"
    "feature::addition"
    "feature::enhancement"
    "type::maintenance"
    "maintenance::dependency"
    "maintenance::refactor"
    "maintenance::workflow"
    "security"
    "documentation"
    "Steps-Integration"
)
ELIGIBLE_REVIEWERS=(
    "rsarangadharan"
    "DarrenEastman"
    "ajwalker"
    "avonbertoldi"
    "cam_swords"
    "dbickford"
    "gdoyle"
    "ggeorgiev_gitlab"
    "joe-shaw"
    "josephburnett"
    "nicolewilliams"
    "pedropombeiro"
    "ratchade"
    "tmaczukin"
    "stanhu"
    "GitLabDuo"
)

function is_in_git_repo() {
    git rev-parse HEAD >/dev/null
}

function get_issue_from_branch() {
    if [[ $CURRENT_BRANCH =~ $ISSUE_RE ]]; then
        ISSUE="${BASH_REMATCH[1]}"
    else
        echo "$CURRENT_BRANCH is not an issue branch"
    fi
}

function get_merge_branch() {
    git upstream | sed 's/origin\///'
}

function main() {
    is_in_git_repo || exit 1

    UPSTREAM=$(git upstream)
    CURRENT_BRANCH=$(git current-branch)

    get_issue_from_branch

    REVIEWERS=$(printf "%s\n" "${ELIGIBLE_REVIEWERS[@]}" | fzf --multi --tac --prompt="Select reviewers >")
    REVIEWERS=$(echo -n "$REVIEWERS" | sed -z 's/[\n ]\+/,/g')

    SELECTED_EXTRA_LABELS=$(printf "%s\n" "${EXTRA_LABELS[@]}" | fzf --multi --tac --prompt="Select additional labels >")
    [[ -n "$SELECTED_EXTRA_LABELS" ]] && LABELS="${LABELS} ${SELECTED_EXTRA_LABELS}"
    LABELS=$(echo -n "$LABELS" | sed -z 's/[\n ]\+/,/g')
    MERGE_BRANCH=$(get_merge_branch)

    args=(mr create --assignee=@me --label "$LABELS" --yes --remove-source-branch --push --fill --fill-commit-body -b "$MERGE_BRANCH")

    [[ -n "$REVIEWERS" ]] && args+=(--reviewer "$REVIEWERS")
    [[ -z "$REVIEWERS" ]] && args+=(--wip)
    # [[ -n "$ISSUE" ]] && args+=(--related-issue "$ISSUE" --copy-issue-labels)

    MILESTONE=$(active_milestone.sh)
    [[ -n "$MILESTONE" ]] && args+=(--milestone "$MILESTONE")

    echo "${args[@]}"
    glab "${args[@]}"

    git change-upstream "$UPSTREAM"

    [[ -n "$ISSUE" ]] && [[ -n "$REVIEWERS" ]] && glab issue update "$ISSUE" -l "workflow::in review"
}

main