Uploaded image for project: 'Red Hat OpenShift Dev Spaces (formerly CodeReady Workspaces) '
  1. Red Hat OpenShift Dev Spaces (formerly CodeReady Workspaces)
  2. CRW-3868

support building OSBS scratch builds from midstream PRs

    XMLWordPrintable

Details

    • False
    • None
    • False

    Description

      Realized today that because we have moved builds to require cachito there's no way to quickly do a local build to test a PR.

      For example, a simple change to update the traefik version/tag (CRW-3606) can't be tested for two reasons:

      • PR doesn't include running sync.sh to pull in new upstream sources to midstream
      • Dockerfile in mid/downstream requires cachito, so can't be run locally
      • make local tweaks (eg, will it run with go 1.18?) is also impossible

      PRs built in osbs as scratch builds :: MANUAL trigger/build

      • locally in upstream:
        • check out project from the branch (or tag) aligned to midstream (eg., from traefik/traefik tag v2.9.6 or che-server branch 7.60.x)
      • locally in midstream:
        • check out devspaces-images repo (midstream)
        • check out PR from topic branch FOOBAR aligned to devspaces-3-rhel8 or devspaces-3.y-rhel-8 origin branch
        • apply local changes from PR
        • run sync.sh to collect sources from upstream (eg., from traefik/traefik tag v2.9.6 or che-server branch 7.60.x)
        • check out downstream repo from matching head branch (devspaces-3-rhel8 or devspaces-3.y-rhel-8)
      • locally in downstream:
        • check out downstream project, eg. devspaces-traefik from devspaces-3-rhel8 or devspaces-3.y-rhel-8 origin branch
        • create topic branch "private-devspaces-build-FOOBAR" or "private-devspaces-build-PR###"
        • rsync changes from midstream to downstream
        • push to private-devspaces-build-PR-###, aligned to local branch
        • trigger build of rhpkg build with scratch = true, source branch = private-devspaces-build-***

      PRs built in osbs as scratch builds :: webhook trigger automation

        • tweak template_3.x based jobs to allow a different MIDSTM_BRANCH topic branch value than devspaces-3*-rhel-8 (allow passing this in, not just generating it)
        • tweak template, sync-to-down and rhpkg jobs so they can push to / use a private-devspaces-build-** branch if MIDSTM_BRANCH doesn't match devspaces-3*-rhel-8
        • create a GHA that can trigger /traefik_3.x/buildWithParameters?MIDSTM_BRANCH=topic_branch
        • update rhpkg job so that if it triggered from topic branch, it reports the brewweb scratch build URL back to GH
          (or would this already work as is, because of the PR comment notifications about actual CI builds?)

      Questions:

      • Do we also need to tweak the webhook config to fire on any topic branches, not just devspaces-3*-rhel-8?
        • but how do we pass the topic branch to the job / prevent nuissance builds / prevent WIP/draft PRs?

      Attachments

        Issue Links

          Activity

            People

              sdawley@redhat.com Samantha Dawley
              nickboldt Nick Boldt
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated: