►
From YouTube: Demo: GitLab Runner Group automated release gen 1
Description
Demo of the first iteration of https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29445
A
You
probably
haven't
seen
my
comment
yet
with
all
the
things
if
you
do
feel
free
to
click
through
things
and
feel
free
to
ask
me
questions
in
this.
In
this
video
I'm
not
gonna,
go
super
deep
into
details.
I'm
gonna
go
over
the
general
process,
so
people
can
have
a
mental
picture
of
how
things
happen
and
then
afterwards
we
can
go
into
details
as
time
goes
by
just
very
shortly.
A
The
new
the
way
the
new
release
process
works
is.
A
Which
basically
creates
tax
and
change
works
and
branches
in
different
projects?
A
The
idea
is
that,
at
this
time,
all
the
projects
that
we
have
are
gonna
be
the
same
way
they
were
before,
so
there
have
been
no
changes
to
the
pipelines
to
make
this.
This
release
process
work,
so
the
runner
pipeline,
for
example,
is
completely
unchanged.
A
If
we
go,
for
example,
into
the
runner
stable
diagram
job,
we
are
going
to
see
some
walks
and
we
are
going
to
see.
We
can
see
all
the
changes
we
can
see
the
the
new
tag.
We
can
see
some
change,
work,
generation
and
stuff
like
that,
and
apparently
it
succeeded.
A
A
A
So
in
essence,
let
me
open
a
runner
and
let
me
go
to
attack,
for
example,
the
last
release
we
did.
Basically,
everything
that
was
done
here
is,
it
sounds
simple
than
it
is,
but
everything
we
did
was
generate
this
change
work
and
add
that
to
a
new
tag,
15
10,
1
and
push
the
attack
from
then
on.
The
runner
pipeline
continues
as
normal
as,
if
you
created
the
tag
manually.
A
Something
cool
about
these
jobs
is,
they
can
be
around
as
many
times
as
you
want
and
they
will
not
produce
any
negative
side
effects
I'm
going
to
demonstrate
that
right
now.
Hopefully
it
was
time
it
didn't
work
and
we
actually
had
a
few
extra
commits,
which
I
am
really
sorry
about,
but
it
is
the
way
it
is.
A
Anyways
so
I'm
gonna
do
a
quick,
mock-up
release.
It's
not
gonna
be
a
mock-up,
it's
just
that
the
release
was
already
done,
so
the
jobs
have
already
completed
the
jobs
for
all
the
tax
for
the
projects,
but
we're
still
gonna
create
this
pipeline
as
if
we're
creating
a
new
release
so
we're.
A
A
But
for
now
let's
go
to
the
releases
project
that
contains
configuration
only
and
now,
let's
say
we
have
created
a
15,
10,
stable
branch
and
we
have
something
inside
of
it.
We
have
a
config
and
we
have
already
done
1510
0
and
chart
51
0
and
15
yeah
51-0.
There's
no
operator
here
since
the
time
operator
wasn't
supported.
A
Or
other
operator
wasn't
ready
for
automated
releases.
It's
not
that
you
need
to
do
something
special
to
have
this
thing
supported,
but
I'm
gonna
go
over
that
in
a
little
bit.
So
now,
let's
add
the
new.
The
new
version.
A
All
I
need
to
do
is
add
the
config
here,
add
the
new
versions
you
can
see.
We
have
a
runner
project
here
or
a
specified
and
configured
chart
project
and
operator
project
now,
I'm
gonna,
add
Runner,
with
version
of
15
10
1.
and
chart
with
version
0
511
and
with
an
app
version
of
1510
1.
Our
version
is
something
that's
used
for
projects
that
use
a
runner,
so
both
Helm
and
operator
actually
use
Runner.
A
Now
this
is
this
is
all
that
I
need
to
have
my
new
release
going
I'm
gonna
commit
that
and
make
it
out
runner
15
10
1
release.
A
A
A
So
I'm
gonna
just
quickly
go
over
all
the
steps,
so
we
fetch
we
fetch
the
the
remote
repo
with
the
lead,
stable
Branch.
Just
so
we
can
be
sure
that
it's
the
latest
with
the
lead
attack.
That's
in
case
you
have
a
walko
project.
Already,
that's
just
clean
up
stuff,
then
we
make
sure
it's
all
cleaned
up,
and
then
we
generate
the
change
walk
somewhere
around
here
yeah
somewhere
around
here
we
update
you
can
see,
we
have
it
commit
that
updates
GitHub
Runner
version
in
the
helm
chart.
A
This
is
a
config
that
per
project
and
that's
specified
for
a
project.
It's
not
required,
but
some
projects
require
some
Custom
Custom
changes
so,
for
example,
for
Helm
for
every
release.
We
need
to
update
this
version
and
doing
that
is
done
by
having
these
actions
here,
which
is
just
you
know,
update
this
file.
We
can
use
templating
here.
This
is
the
release
version.
This
is
the
release
app
version.
A
A
So
now
that
this
is
done,
I'm
gonna
have
to
refresh
this
and
all
the
dry
run
jobs
passed
so
that
most
likely
means
I
can
proceed
to
running
the
runner
stable
branch
which,
if
you
are
unfamiliar
with
our
release
process,
is
gonna,
create
the
1510,
stable
Branch
or
it's
gonna,
get
it
it's
going
to
update
the
change
work.
A
The
the
thing
about
this
is
that
the
change
work
generation
is
rather
smart,
although
I
did
it
so
that's
questionable,
but
it's
gonna
try
to
do
the
best
thing
possible.
So
let's
say
that
we
have
already
created
the
stable
Branch,
but
haven't
done
the
release
yet,
which
is
the
case
in
case.
We
have
a
feature
for
this
on
the
seventh
which,
as
you
can
see,
is
probably
going
to
be
in
a
couple
of
days
and
yeah
and
let's
say
we
have
a
feature
freeze
and
we
create
the
stable
Branch.
A
We
create
the
change,
walk
and
it's
all
fine,
but
then
we
decide
to
pull
something
else
into
the
1510
stable
Branch
just
before
we
release
the
attack.
If
we're
on
this
job
again
on
that
stable
Branch
this
this
job,
it's
gonna,
regenerate
the
change,
walk
and
add
only
the
new
Mrs.
So
it's
trying
to
be
smart,
but
that's
basically
it
and
I
can
basically
run
this
job
as
many
times
as
I
want.
A
If
I
look
at
it
here,
We're
not
gonna
have
any
new
commits.
That's
because
we
have
nothing
new
in
the
stable
branch
if
I
were
to
pull.
For
example,
cherry
pick
a
merger
Quest
from
Maine
and
cherry
pick
it
here.
It's
gonna
get
added
to
the
changeup.
A
So
for
this
use
case,
where
we
have
15.10.1,
we
are
usually
gonna
create
15.10.1
from
that
stable
branch.
A
A
The
point
of
that
is
that
this
pipeline
can
fail
on
so
many
different
places
and
I
want
us
to
feel
safe
to
maybe
make
some
changes
in
the
releaser
or
in
the
release
config
of
this
project,
or
something
somewhere
or
just
rerun
or
recreate
the
whole
pipeline,
and
so
we
can
do
it
freely
and
without
any
bad
consequences.
A
So
now,
in
our
mock
scenario,
we're
gonna
earn
this
job,
and
this
job
is
gonna.
If
we
didn't
already
have
the
15
10
one
tag,
it
was
going
to
create
the
15
10
1
Duck.
A
You
can
see
it's
just
succeeding
and
it's
not
gonna
push
anything
because
everything
is
up
to
date.
Already
it
can
see
that
sorry
yeah
they're
under
attack.
It
can
see
that
the
attack
already
exists
in
the
remote,
so
it's
not
gonna
push
it
and
that's
fine,
and
now
we
are
gonna
wait
for
for
the
attack
pipeline,
which
has
already
has
already
succeeded
a
while
ago.
So
this
this
job
is
just
gonna
go
green
immediately
and
now
from
here
on.
A
We
can
just
do
the
same
thing
for
chart
and
operator
and
we
can
start
stable
Branch.
We
can
start
attack,
we
can
start
the
diagram
the
attack
and
then
we
can
wait
for
the
Pipelines.
A
Let's
say:
let's
make
it
15
11.,
let's
make
it
15
11.,
let's
say:
you're,
making
15
11
you're
gonna
check
out
to
the
1511
stable
Branch
you're
gonna
make
this
1511
you're
gonna
make
this
52
and
you're
gonna
just
add
an
operator
here,
that's
1
14,
and
this
is
going
to
be
11.,
and
this
is
going
to
be
11
as
well,
and
you're
gonna
commit
that
to
the
15
11,
stable
branch
and
you're
gonna,
just
click
buttons
on
on
this
pipeline
screen
why
the
pipelines
are
oh
manual
now,
because
I,
don't
trust
myself
and
I
want
us
to
have
a
solidified
experience
with
this
before
all
of
this
can
run
without
any
supervision.
A
I
think
that's
it
and
yeah.
It
does
basically
the
same
for
every
project.
It's
completely
identical
for
every
project.
That's
why
adding
operator
was
so
simple.
It
took
me
a
short
amount
of
time,
except
for
operator,
so
automation
itself.
Taking
more
time.
The
only
different
thing
is.