►
From YouTube: Newcomer Track Other
Description
Jenkins Contributor Summit June 25, 2021 Newcomer track - Other
slides https://docs.google.com/presentation/d/1eU0KabpBtGd0BCebuhWyvBgBunBaZvM3hIfcpdy_-OE/edit?usp=sharing
A
You
see
like,
for
instance,
I
baked
apache
http
client.
It
is
very
common
or
is
very
used
across
multiple
plugins.
So
if
I,
the
plugin
that
I'm
using
it
depends
on
that
particular
library,
you
I
can
upgrade
it
just
for
my
plugin
or
you
have
an
impact
on
remaining
plugins.
How.
B
That
that's
a
very
good
question,
so
I
think
what
you're
asking
is:
what
is
the
downstream
impact,
if
my
plug-in
declares
that
it
needs
a
newer
version
of
one
of
its
dependencies?
Is
that
a
fair
way
to
say
what
you're
asking
yeah?
Okay?
So
so,
let's,
let's
take
the
specific
example
of
the
git
plugin.
B
Then
what
that
means
is
when
users
install
the
new
version
of
the
git
plugin,
if
they
don't
have
at
least
that
minimum
version
of
promoted
builds,
they
will
have
to
upgrade
to
it
and
jenkins
will
offer
the
upgrade
automatically
to
get
that
new
version.
So
if
I
mandate
a
a
newer
version
of
dependency,
then
when
someone
installs
my
new
release
with
that
mandatory
newer
version,
they
must
have
at
least
that
version
installed
it.
They
can
have
a
newer
version
than
that,
but
they
must
have
at
least
that
version
did
that
help.
C
B
Okay,
so
so
one
of
the
one
it
for
me
that
highlights
one
of
the
real
benefits
of
the
bill
of
materials.
Before
I
implemented
bill
of
materials
in
the
in
the
get
plug-in.
For
instance,
I
was
terrified
to
update
dependency
version
numbers,
because
I
worried
that
I
was
going
to
break
someone.
I
worried
that
I
was
going
to
force
them
to
upgrade
to
a
newer
version
of
a
plug-in,
and
I
I
spent
an
unjustified
amount
of
time
worrying.
B
B
So
all
of
a
sudden,
the
entire
jenkins
community
is
getting
the
benefit
of
more
frequent
upgrades
to
plug-ins
and
getting
more
people
on
largely
the
same
versions.
Because
of
this
bill
of
materials
change
so
so,
for
me,
the
bill
of
materials
has
been
not
just
helpful
to
me
as
a
developer.
It's
been
helpful
to
the
users
because
they're
tending
to
get
more
of
them
on
similar
version
numbers.
D
I
maybe
can
share
my
experience
just
just
a
short
I
have
I
yesterday
I
have
reverted
my
jenkins
installation
to
the
previous
lts
version
and
about
20
plugins
didn't
match
the
version
of
the
previous
lts
release,
so
it
wasn't
possible
to
to
step
back
one
lts
release.
D
Maybe
it's.
It's
will
help
someone.
B
D
No,
it's
it's
painful.
I
I
really
like
to
use
configuration
as
code,
but
we
deployed
jenkins
the
old
way,
not
not
in
a
container
but
installing
in
the
file
system
as
a
war
file
and
all
the
dependencies
lay
in
the
file
system
in
jenkins
home,
and
there
is
no
way
to
you
know
just
to
tell
okay
with
this
new
version
come
this
version
of
plugin
because
they
are
already
there.
D
And
it
is
impossible
to
apply
configuration
as
code
in
such
manner
in
container
world.
It
is,
I
think
it
is
easier
because
you
start
a
new
container
there's
such
a
great
feature
that
you
can
install
all
needed
plugins
for
this
particular
jenkins
version
inside
this
container
and
run
run
it,
but
not
if
you
install
the
old
way
the
file
system
base-
and
this
is
this-
is
a
problem
right
now
for
us.
B
So
I
was,
I
was
living
in
exactly
that
kind
of
a
world,
and-
and
I
agree
with
you
wholeheartedly-
I
installed
from
a
war
file-
I
was
using
in
my
case
the
the
debian
package
right.
So
I
installed
the
debian
package
onto
onto
my
debian
or
my
ubuntu,
but
I
was
able
to
find
a
path
that
let
me
eventually
move
towards
that,
and
I
wonder
if
it
might
be
worth
your
considering
one
of
the
things
that
okay,
I
don't
want
to
disturb
my
production
instance
right.
B
So
I
I
ended
up
taking
with
rsync
a
copy
of
the
plugins
directory
and
the
config.xml
files
for
the
jobs
and
various
other
config
files
and
then
one
little
file
at
a
time.
One
piece
at
a
time.
My
my
separate
copy
got
a
little
bit
of
configuration
as
code
in
one
segment
and
a
little
bit
of
configuration
as
code
in
another,
and
I
spent
months
of
slow
progress
getting
there,
but
those
months
of
progress
ultimately
ended
up
with.
B
B
D
We
use
rsync
to
copy
the
whole
jenkins
home
directory
to
a
new
virtual
machine
and
we
start
a
newer
version
of
jenkins
and
start
the
migration
on
this
test
machine.
And
if
it's
go
right
then
we
make
the
same
thing
on
the
productive
machine.
But
you
brought
me
to
the
idea:
we
should
not
copy
the
whole
jenkins
home.
D
Maybe
we
should
make
it
smaller
pieces
copy,
not.
B
At
least
at
least
for
me,
it
was
a
it
was
a.
It
was
a
positive
experience
to
incrementally
start
from
wherever
I
was
right.
With
everything
manage
the
way
I
was
used
to
managing
jenkins
with
everything
done
from
the
user
interface,
and
I
I
had
I
clicked
through
web
pages
to
make
every
change,
but
then
that
rsync
and
copy
those
contents
into
a
repository
was
a
great
help.
It
turned
out
very,
very
useful
to
me,
and
it's
made
my
development
better,
all
right
it
it.
C
C
B
Going
to
put
this
into
the
into
the
chat,
see
and
now
this
is
this-
is
truly
evolutionary
embarrassment
publicly
displayed
all
right,
and-
and
I,
if
you,
if
you
look
at
the
history
of
this
particular
repository
you,
you
will
realize
that
mark
waite
hangs
his
head
in
shame
at
some
of
the
mistakes
I've
made
in
going
through
these
evolutionary
transitions
right
is
oh
wow
that
was
foolish
well,
but
that
works
oh,
but
that
was
bad,
so
so
you're.
Welcome
to
that.
B
D
C
B
So
we
were
just
doing
a
google
summer
of
code
project
and
that
google
summer
of
code
project
made
an
important
change
to
the
git
client
plug-in,
and
I
needed
to
test
it,
and
it
was
minutes-
and
I
had
that
thing
deployed
into
this
environment
that
has
thousands
of
jobs
and
has
interesting
configurations
and
is
known
to
have
have
problems
in
places
that
that
most
people
don't
have
so
so.
For
me
it
was
but
but
that's
it's
been
an
investment
right.
I
mean
doing
incremental
transition
from
old
to
new
has
taken
time.
C
B
Great
we
we've
talked
about:
we've
talked
about
development
and
transitions
for
plugins.
Are
there
other
things
around
plug-in
transitions?
Let's
see
jonathan,
for
instance,
on
yours,
you
mentioned
that
you've
you've
had
to
upgrade
upgrade
and
find
find
your
way
through
how
to
how
to
bring
an
old
plug-in
to
be
current
and
the
ad.
The
plug-ins
that
are
up
for
adoption
commonly
have
that
exact
problem.
They
need
to
be
updated
and
you've
got
to
explore.
B
B
And
I
I
like
that
very
very
much.
That's
that's
a
great
way
to
to
be
able
to
had
a
good
conversation
the
other
day
with
someone
who
worried
hey,
but
I
can't
give
40
hours
a
week
to
this
kind
of
thing,
and
I
think
that
plug-in
adoption
is
a
place
where
you
could
give
30
minutes
or
an
hour
a
week
and
do
significant
work,
realizing
that
if
a
plug-in
has
been
placed
for
adoption
right
now,
that
means
there
aren't
people
working
on
it.
B
C
A
B
B
A
Yeah,
since
we
have
everything
on
top
of
kubernetes,
we
are
using
configuration
score
and
all
of
that,
so
we
at
least
that
issue
in
which
we
have
to
replace
a
great
or
downgrade
not
that
we
haven't
needed
to
downgrade
but
yeah.
That's
something
that
you
should
look
at
for
sure,
valentin
yeah!
That's
my
easier
life.
B
A
No
so
I,
when
I
started
to
you,
implemented
this
on
kubernetes,
I
thought
that
the
kubernetes,
the
jenkins
operator,
was
mature
enough.
So
I
went
to
a
health
char.
A
Things
as
well,
because
you
know
it
is
just
matter
of
changing
a
yama
file,
a
value,
sorry,
a
value
on
the
for
the
help
chart
and
then
the
whole
thing
rollover
pretty
easy
yeah.
It
sounds
more
a
better
approach
than
just
using
raw
jungle
file.
B
A
So
one
thing
that
I
have
been
thinking
is
that
I
need
to
improve
the
way
that
I
am
rolling
out
new
grades,
because
I
have
found
in
the
past
that
I
am
just
upgrading
the
lte
east
version
right
on
the
hr
value,
and
then
there
is
a
dependency
of
that
on
plugins,
specific
versions.
And
then,
since
I
fail
on,
read
the
migration
process,
my
grade
fails
so
yeah.
B
And
I've
I've
heard
a
number
of
people
who
who
use
that
kind
of
a
staging
technique
that
you're
describing
who
who
evaluates
something
in
staging.
I
think
it
aligns
with
the
way
valentin
was
describing
they're
doing
nor
theirs.
Your
kubernetes
technique
doesn't
doesn't
use
rsync,
as
I
assume
going
from
code
now
in
your
kubernetes
or
in
your
your
image
definition.
B
One
of
the
things
that
we
learned-
I
guess
it
was
six
or
nine
months
ago,
was
that
many
users
are
are
making
the
sub-optimal
choice
of
declaring
their
plug-in
versions
in
the
definition
of
their
thing,
but
not
installing
the
plug-in
versions.
So
when
they're,
when
their
their
new
jenkins
installation
starts,
they
were
downloading
the
plug-ins
at
start-up
time
and
and
that's
both
expensive
and
slow
to
slow
to
process
and
a
risk
to
you.
Because
then,
if
the
jenkins
update
site
is
down,
your
jenkins
is
stopped
waiting
for
it
to
upgrade.
B
A
Yeah,
that's
another
process
that
I
need
to
improve
so
yeah.
I
guess
that
the
recommended
way.
I
think
that
I
read
it
on
the
wiki
or
somewhere
else,
that
I
should
build
my
own
docker
image
with
the
plugins
that
I
need
yeah
in
terms
of.
A
You
know
provisioning
time
it
will
reduce
the
provisioning
time.
I
found
that
that's
a
leader
risky
just
to
install
on
the
fly,
even
though
you
are
not
upgrading.
B
A
Yeah,
although
I
should
mention
that
the
star
the
bootstrap
process,
he,
I
will
say
that
he
doesn't
take
more
than
five
minutes
to
be.
B
A
Yeah
there
are
locations
in
which
a
plugin
could
fail
on
that
because
I
don't
know
the
instead
of
using
a
specific
version
that
was
long
time
ago
and
a
specific
version
and
used.
The
latest
version
of
the
plugin
declare
on
the
configuration
as
code
and
then
what
happened
is
the
controller
was
restarted
and
on
the
bootstrap
process
the
plugin
was
installed
with
a
different
version,
because
I
have
instead
of
a
fixed
version.
I
have
the
latest.
A
The
docker
image
with
all
the
plugins-
that's
for
sure.
One
thing
that
I
want
to
do
for
the
reason
that
we
have
said.
D
B
D
I
ask
a
question:
so
if
you
have
a
new
image
with
newest
plugins,
for
example,
six
weeks
passed-
and
there
is
a
new
jenkins
lts
version
available-
you,
you
built
a
new
image
with
newest
plugins,
and
you
want
to
bring
it
into
your
production
or
test
environment
you.
D
What
what
you
do
is
you
have
a
volume
somewhere
on
on
the
file
system,
bind
to
to
your
image
and
there
is
a
plugin
information.
There
is
older
for
older
versions
of
these
plugins.
A
So
currently,
I
am
not
doing
anything
in
regard
to
the
volume.
Usually
I
believe
that
mostly
it
is
being
taken
care
by
jenkin
itself,
but
what
I've
realized
is
that
in
some
occasion,
when
you
grade
the
ganking,
you
can
get
a
warning
like
saying
you
have
an
old
or
legacy
configuration
related
to
those
plugins.
A
Do
you
want
to
keep
it
or
delete
it?
That's
why
I
believe
jenkins
is
taking
care
of
those,
so
you
don't
need
to
clean
up.
I
guess.
A
C
D
Yeah,
there's
one
more
problem
with
it.
If
you
deleted
a
plug-in
from
plug-in
txt
and
build
a
new
image,
and
you
start
jenkins
with
this
new
image
and
bound
volume,
you
you
still
have
the
old
plugin
installed
in
your
jenkins
environment
right
and
you
can't
cannot
get
get
rid
of
it
because
it
is
in
your
file
system.
That's
bound
in
to
your
image.
D
B
And-
and
so
that
was
why
I'm
from
at
least
from
my
usage,
I've
preferred
to
have
the
jenkins
the
base.
Docker
image
includes
the
plug-ins
in
the
image
and
it's
not
a
separate
volume
right.
It's
it's
absolutely
just
part,
because
what
what
I
wanted
was
I
want
the
ability
to
know
that
the
thing
I
described
I
could
go
back
in
time
if
I
had
to
and
build
it
again
now
this.
This,
for
me,
is
actually
a
relatively
recent
thing,
because
I
spent
the
longest
time
doing
exactly
what
marcel
was
doing
of
using
latest.
B
I
I
always
want
the
latest
plugins,
and
so
I
want
to
stay
with
latest.
It
turns
out
that
this,
this
new
tool
called
the
plugin
installation
manager,
has
some
automation
inside
of
it.
That
will
help
me
maintain
the
list
of
I
okay.
I
was
lazy.
I
didn't
want
to
maintain
the
list
of
exact
plugins
plug-in
version
numbers
manually
that
was
just
I've
got
150,
plugins
and
tracking
those
version
numbers
was
just
unacceptable.
B
I
I
couldn't
imagine
tracking
those
numbers,
but
the
plug-in
installation
manager
tool
is
this
java
program
that
will
generate
the
exact
list
of
plug-in
name
version
pairs
and
write
it
to
the
file
for
me,
and
so
what
I've
got
is
this
ability
to
say
run
one
command
that
says
tell
me
the
current
version
numbers
write
it
to
a
plugins.txt
file
as
exact
version
numbers
and
another
command.
That
says
now
go
download
exactly
those
versions
from
from
the
update
center.
B
B
And
now
there
is
a
different
technique
and
there's
a
different
technique:
technique
that
the
jenkins
infrastructure
team
uses
the
jenkins
infrastructure
team
uses
a
a
depend
about
configuration
that
will
watch
the
jenkins
update
center
and
propose
pull
requests
to
their
plugins.txt
file
for
new
versions
and
so
they're
still
tracking
exact
version
numbers.
But
if
you're
interested
in
that
I
could,
I
could
probably
paste
you
a
link
to
that
one.
If
you
say.
Oh,
I
want
to
use
dependable
to
track
these
things
that
that
that
was
a
an
interesting
technique
that
the
infra
team
found.
D
If
I
understand
this
correctly
dependable,
it
works
only
with
github.
That's.
B
D
A
A
I
I
am
struggling
with
what
you
just
mentioned.
I
need
to
go
over
every
plugin
version
when
I
own
grading.
I
think
that
there
was
a
major
upgrade
on
the
ltes
version
some
months
ago,
so
I
went
through
all
of
those
and
also
especially
because
I
upgraded
from
jdk
8
to
11.
B
B
B
C
C
B
B
B
I
am
so
sorry,
I'm
not
finding
it.
I
know
that
I
get
this
message
all
the
time
and
so
I'll
I
will.
I
will
let
me
take
an
action
item
to
gather
that
and
if
you're
willing
to
actually
let
me
paste
my
email
address
if
you're
willing
to
send
send
your
email
address
to
mark.earl.wait,
gmail.com
and
I'll
share
the
link
to
the
jenkins
infrared
repo.
B
B
Right,
that's
that's
the
price
I
pay
so
yeah.
I
think
it
may
have
the
word
docker
in
it.
Yes,
there
it
is
okay,
good!
B
I
found
it
okay.
So
if
we
look
at
this
one
with
docker-
yes,
I
found
it.
Oh
I'm
so
proud.
Okay,
good,
see
the
jenkins
infra
lts
upgrade
process
at
this
thing
and
I'm
going
to
go
ahead
and
share
my
screen
and
let's
take
a
look
at
it
just
so
you
can
get
a
sense
of
how
it
operates.
So
here
is
the
you
should
see
the
docker
jenkins
lts
repository
now.
Do
you
see
that
I
do
okay
and
in
the
dot
github
directory.
B
Here
is
so
in
the
dot
github
directory.
We
have
three
workflows
enabled
so
dependabot
is
here
that
runs
github
actions
and
then
in
the
workflows
we've
got
update.yaml,
which
does
this
operation,
let's
see
so
it
generates
the
token
and
then
it
runs
on
the
update
plugins
branch,
this
operation
here,
oh
no,
here
it
is
it's
this
one.
It's
this
jenkins,
infra
uc.
B
B
B
So
so
the
the
thing
it's
proposing
is,
it
proposes
the
most
recent
version,
but
it's
it's
a
little
more
sophisticated
than
that,
because
it's
proposing
the
most
recent
version
that
is
supported
with
that
jenkins
version.
Okay,
so,
for
example,
it
is
perfectly
legal
for
a
jenkins
plug-in
to
declare
that
it
requires,
as
its
minimum
version
version
jenkins
2.299,
and
when
I
try
to
install
that
from
the
latest
lts,
which
is
289.
B
C
B
There
is,
and,
and
that
same
that
same
that
same
intelligence
exists
in
that
plug-in
installation
manager,
tool
that
I
was
describing
earlier
right
it.
It
does
the
same
thing
in
order
to
help
in
order
for
it
to
make
a
recommendation,
you
must
tell
it
which
jenkins
version
you're
targeting,
and
it
will
then
use
that
information
to
to
provide
the
list
for
you,
cool
cool,
very
cool.
A
Yeah,
in
your
case,
valentin,
if
you
are
not
using
github,
you
should
be
able
to
look
at
the
implementation.
C
C
B
Well,
and
and
marcel
makes
a
very
good
point
that
most
of
these
things
are
done
exactly
that
way
right
where,
where
this
this,
let
me
share
that
screen
again
just
to
show,
because
it's
it's
good.
So
if
we
look
at
this
update,
plugins
pull
request
and
we
go
look
at
the
repository
in
the
dot
github
workflows.
B
B
B
D
A
A
G
So
yes,
so
as
a
newcomer
contributors,
some
of
people
would
not
know
that
how
to
go
and
check
out
all
the
available
guitar
channels.
That
jenkins
has
so.
I
think,
if
I
paste
the
link
for
jenkins
ci
dot,
slash
home
on
the
chat,
so
people
can
look
at
it
for
obviously
those
who
are
present
in
the
meeting
right
now,
so
they
can
look
at
it
and
join
the
the
available
channels
that
they
like
to.
B
B
B
G
Also,
I'd
like
to
share
one
very
small
experience
that
I
think
might
help
someone
who's
who's
in
the
same
position
at
me
that
has
been
new
to
contributing.
G
So
when
I
was
learning
about
configuration
as
a
code
plugin,
I
was
very,
I
still
am
very
interested
in
it
because
it
works
like
a
magic
to
me,
because
so
it's
really
cool.
So
I
I
came
across
one
technique
that,
in
order
to
configure
the
plugins
using
j
jks
plugin,
we
need
to
know
it's
yaml,
syntax
right,
so
everyone
does
not
know
how
to
write
the
correct
email,
syntax
for
config
configuring,
a
particular
plugin.
So
what
they
can
do
is
go
to.
G
G
This
I'm
trying
to
hear
is
that
one
on
channel
know
that
some
who
technique-
and
I
assume
that
people
would
know
this
very
easily.
G
So
the
point
I'm
trying
to
make
here
is
that
there's
always
something
that
you
can
contribute
from
your
end
and
if
it's
not
going
to
help
everyone,
it's
going
to
help
someone
for
sure.
So
you
need
to
volunteer
and
bring
the
idea
to
the
greater
channel,
and
we
can
discuss
more
on
that
and
we
can
put
it
and
publish
it
if
it
helps
anyone.
So
welcome
for
the
contribution
from
that.
B
B
B
B
Now
I
believe
several
of
you
had
noted
that
you're
you're
on
the
way
to
pipeline
you've
got
a
mix
of
freestyle
jobs
and
pipeline
jobs
if
you're,
okay
with
it
I'd,
be
happy
to
do
a
brief
demo
on
some
things
that
I
think
you
ought
to
be
aware
of
as
pipeline
capabilities,
so
that
you
you
don't
miss
these
capabilities
as
you
as
you're.
Considering
should
I
try
pipeline
would?
B
Would
you
be
okay,
watching
a
little
demo
watching
letting
me
go
through
and
talk
about
pipeline
a
little
bit
and
trying
to
sort
of
introduce
the
concepts
and
then
show
some
demonstration
of
what
what
you
can
do
with
pipeline
and
what
many
people
may
miss
as
capabilities
that
are
available
in
pipeline
that
they
they
didn't
realize?
Were
there
yeah,
okay,
cool
so
so
marcel.
A
Meeting
but
I
would
like
to
ask
so
I
believe
someone
mentioned
you're
gonna-
be
them
on
this
pipeline
graphview
blogging
later
today,.
B
B
Is,
although
if
you,
if
you
would
just
like
yes,
it
is
an
entry
on
the
agenda,
it's
scheduled
to
start
in
about,
let's
see
we're
at
10
30
now
so
8
9,
10,
10
30..
So
it's
scheduled
to
start
in
about
90
minutes
but
marcel.
I
can
also
paste
a
link
to
you
for
you
of
an
existing
demonstration
of
pipeline
graph
view
that
we
had
a
video
of
that
way.
You
could
you
could
even
look
at
the
video
separately
if,
for
some
reason
you
couldn't
come
back
to
attend
the
ignite
demo.
B
B
F
B
A
A
B
A
B
So
I
was
going
to
go
ahead
and
and
show
some
things
relative
to
pipeline.
Let's,
let's
first
give
a
brief,
I
guess
a
simplest
way
to
say
it
is
a
brief
look
at
some
of
the
concepts
around
pipeline
and
let
me
see
if
I
can
find
my
slide
deck
to
share.
B
Too
many
tabs.
Yes,
here
we
go
okay,
so
this
was
a.
This
was
just
a
very
beginning
kind
of
thing.
So
so
the
idea
here
is
that
jenkins
whoops
copy
the
link
in
case
you
want
the.
B
B
B
With
pipeline
with
freestyle
jobs,
we
configure
them
for
the
web
browser.
It's
really
easy
to
do.
We
store
them
inside
jenkins
makes
them
easy
to
change,
but
it's
not
nearly
as
easy
to
see
what's
changed
or
why
it
was
changed
and
we
don't
get
a
lot
of
help
from
people.
They
just
made
a
change
and
they
went
on
and
it's
strongly
dependent
on
plug-ins
and
if
a
job
starts
free.
If,
if
jenkins
stops,
the
freestyle
job
stops
as
well,
there's
no
way
of
continuing
it
to
run
across
a
jenkins,
restart
jenkins.
B
Pipeline
jobs
are
configured
from
a
source
repo,
so
you
configure
them
as
code
they're
right
inside
your
source
repo.
So
the
job
definition
is
not
embedded
in
jenkins.
Storing
it
in
your
source,
repo
makes
it
easier
to
maintain
easier
to
see,
what's
changed
and
gives
you
get
comments
from
the
people
who
made
the
changes.
So
it's
using
a
pattern
you're
accustomed
to
and
it
puts
the
burden
of
the
work
predominantly
in
your
build
scripts.
B
So
there
are
two
domain-specific
languages
that
are
implemented
in
pipeline.
One
is
declarative,
and
the
other
is
scripted.
Declarative
is
a
very
is
the
second
generation
of
pipeline
language.
If
you
will
it's
intentionally,
simplified
intentionally,
designed
to
be
managed
and
read
and
implemented
by
people
who
may
not
be
precise.
Programmers
scripted
looks
an
awful
lot
like
groovy
code.
It's
a
dsl,
that's
derived
from
groovy.
B
B
The
keywords
that
are
used
in
the
languages,
the
steps
or
the
tasks
are
defined
by
the
set
of
plugins
that
you
have
installed,
and
that
means
the
pipeline
snippet
generator
and
the
directive
generator
can
let
you
use
exactly
what's
in
your
system
now
it's
time
to
stop
the
stop
the
slides
and
let's
get
to
a
real
demo,
because
because
this
is
where
I
think
it
matters
the
most.
So
let's
look
at
my
jenkins
installation
whoops
wrong
one,
my
jenkins
installation
here,
okay,
this
is
a
real
jenkins
installation.
It's
jenkins,
2.289
pre-release.
B
It's
got
30
or
40
agents
connected
to
it.
Some
of
them
are
dynamic
from
the
cloud
others
are
here
and
there
and
everywhere
so
a
real,
a
real
jenkins
when
I
want
to
define
a
new
plug,
a
new
job,
and
I
want
to
put
pipeline
into
that
repository-
I
just
click
open
blue
ocean
click,
new
pipeline
and
now
it
asks
me
which,
where
do
I
keep
my
code
and
okay,
bitbucket
bitbucket
server,
github
enterprise,
github
or
just
vanilla,
git,
and
in
my
case
let's
see,
do
you
have
a
preference?
B
B
Okay,
now
I've
got
to
get
some
a
username
and
password.
So
for
this
I'm
going
to
go
to
bitbucket
cloud,
let's
see
and
so
get
bitbucket
and
I
may
have
to
turn
off
screen
sharing
briefly,
if
it
prompts
me
to
enter
a
password.
Let's
try
continue
with
oh
yeah.
Let's
try
this
just
to
see.
If
it's
connected
to
my
atlassian
account
that
way,
I
didn't
okay.
Now
I
have
to
insert
my
security
token.
B
Oh
I'm
so
proud
of
these
things,
because
I've
got
two
factor
off
yes,
okay,
good!
Here
we
go
all
right.
So
now,
let's
look
at
various
repositories.
So
here's
a
repository
now
this
one
already
has
a
jenkins
file
in
it.
So
it's
already
defined.
We
can
just
use
that
one
and
let's
try
that
or
if
we
would
like,
I
could
create
a
new
repository
that
doesn't
have.
B
B
C
B
B
B
B
So
it
found
not
just
my
master
branch
but
also
two
other
branches
and
ran
work
on
those
two
other
branches,
and
here
one
of
them's
already
finished
the
other
one's
finished
and
there
we
see
it.
This
is
all
just
part
of
blue
ocean
it
and
pipeline
graph
view.
The
one
that
marcel
was
referencing
gives
a
similar
view
to
this,
with
a
much
lighter
weight,
still
very,
very
new
environment.
So
here
we've
got
this
notice
in
the
top
right
hand,
corner
there's
this
little
pencil
icon.
B
B
B
B
Now
I'm
going
to
save
it
and,
in
this
case
add
a
parallel
test
change
the
change,
the
messages.
B
And
I
could
commit
it
to
a
new
branch
or
I
could
submit
it
right
to
master
either
is
fine,
you
have
a
preference
which
would
you
like
master
branch
or
a
new
branch.
B
Okay,
a
master
branch.
It
is
we're
going
to
save
it
and
run
it
so
now.
What
we
will
see
now
is
that
if
I
look
at
the
master
branch,
you
look
there's
a
run
number
one
and
now,
as
I
go,
oh
there,
it
is
build
number
two
has
started.
If
I
look
at
number
one,
you
see
it's
a
linear
flow
build
test
deploy.
B
Now,
if
I
go
back
to
bin
two
there's
my
build
first
test
second
test
and
deploy
now,
ultimately,
most
users
may
not
even
actually
look
at
these
views
right,
they
may
say.
Look
all
I
want
to
know
is
that
the
thing
finished
and
publish
a
result
somewhere.
I
don't
care
about
the
pretty
view,
but
for
me
I
find
it
helpful
to
do
my
initial
layout
of
what
steps
should
be
in
my
pipeline
from
this
user
interface
so
that
I
don't
have
to
have
to
worry
about
exact
placement
of
braces
exact.
Where
does
everything
go?
B
D
The
question
is:
is
it
possible
to
run
this
configuration
without
pushing
your
your
changes
to
the
git
server.
B
Oh,
that's
a
very
good
question
and
the
answer
is
yes,
it's
okay!
So
now
that's!
I
would
call
that
almost
an
advanced
topic,
but
I'm
going
to
go
ahead
and
show
it
to
you.
If
that's
okay,
so
let's
you
say
well
what?
If
I,
what
if
I
want
to
just
experiment
with
something
and
not
not
commit
to
the
repository
here's
this
replay
facility.
B
B
Second,
test:
let's
see
first
test
yeah
so
and
then
deploying
yeah
there
we
go
so
so
I
have
changed
it.
I'm
gonna
say
run
now.
What
we'll
see
is
it's
going
to
do
the
checkout
it'll?
Okay,
these,
I
have
to
admit
the
steps,
are
all
very,
very
fast
right
because
all
they
are
saying
messages
and
but
now,
if
I
go
open
blue
ocean
and
look
at
that
thing,
let's
look
at
the
message
here.
Building
it
didn't
say
building
so
so
my
change
was
there
and
yet
I
never
deployed
it
to
the
repository.
D
Okay,
but
you
make
these
tweaks
in
a
text
editor
and
not
in
the
blue
ocean
interface
anymore.
Well,
that's
correct!.
B
I
think
so,
and
I've
never
tried
to
do
a
replay
in
blue
ocean,
but
I
don't
think
I
can.
So
let
me
let
me
double
check
that,
because
if
I
go
back
here,
let's
look
at
number
two
and
there
is
a
see
this
rerun
button.
But
when
I
click
the
rerun
here
in
the
top
right
hand
corner
my
recollection
is
all
that
does
is
rerun
the
the
job
exactly
as
it
was
defined.
B
So
I'll
look
at
three
and
here's
three,
and
if
we
and
now
guess
what
four
will
be
available
very
soon,
and
there
is
four
and
four
uses
uses
two
all
right.
So
I
reran
four
and
it
a
re-ran
two
and
it
did
it.
Did
it
as
a
new
job,
a
new
version,
a
new
number
four
okay,
so
yeah
there
isn't
a
way
in
blue
ocean
to
do
that.
Interactive,
rework
and
not
save
to
the
repository.
B
Now
now
there's
another
there's
another,
really
what
I
think
of
as
okay.
This
is
so
you
remember,
we
were
here
in
replay,
see
this
link
at
the
bottom.
This
thing
called
pipeline
syntax
that
is
magical,
I'm
going
to
click
that
and
we're
going
to
look
to
see
just
how
magical
that
is
so
so
in
the
pipeline
syntax
link.
B
It
opens
up
a
snippet
generator
where
I
decide
which
step
I
want
to
try.
Oh,
I
need
to
run
a
windows
batch
command
and
I
would
like
that
to
say
echo
hello
world
and
then
I
want
it
because
it's
windows,
I
want
to
say
dur,
slash,
od
and
by
advanced
settings.
I
would
like
the
output
to
come
back
as
utf-8,
and
I
want
to
know
the
return
value
of
this
thing.
So
I
want
the
exit
status,
oops
utf-8
and
I
want
the
return
status.
B
B
C
B
B
C
E
B
So
now,
if
we
go
back
here,
we
should
see
notice.
Here's
that
you
remember,
I
gave
it
echo
hello
world
endure
od
there.
It
is
so
so
pipeline.
Snippet
generator
is
a
great
way
to
make
your
life
simpler.
It
just
is
the
same
thing
exists
for
declarative
directives
as
well.
This
one
where
we
say
I
need
to
in
declarative
decide.
I
only
want
to
run
on
specifically
labeled
agents
like
one
with
the
label
windows
generate
that
and
there
it
is,
and
now
I
could
have
pasted
this
into
that
same
same
replay,
any
questions.
B
B
All
right,
so
you
have,
you
have
been
very
tolerant
of
almost
three
hours
of
this.
Thank
you
very
very
much.
I
would
like
to
be
able
to
attend
the
next
session
and
I
believe
it's
scheduled
to
start
in
about
five
minutes,
because
I
want
to
talk
about
java
11
with
others.
Any
questions
you've
got
in
the
last
five
minutes
before
we
end.
E
Hello
mark
this
is
sadesh
over
here
once
again,
yesterday,
hi
in
this
in
this
in
the
pipeline
script,
can
you
please
help
me
know
if
there
is
a
requirement
for
a
restart?
How
can
I
implement
that
so
restart
from
a
particular
stage.
F
E
B
So
I
I
that's
a
good
question.
Unfortunately,
I'm
not
sure
siddesh
that
I
know
the
answer,
because
I'm
used
to
using
restart
from
stage
at
this
level
and
then
and
then
now,
if
I
remember
correctly,
we
may
have
to
ask
darren
pope
or
some
other
friends
with
more
pipeline
experience.
I
suspect
what
you
need
to
do
is
in
preceding
stages.
You
need
to
stash
the
results
of
that
stage
so
that
you
can
unstash
it
stash
or
archive
the
results
of
that
stage,
so
that
you
can
unstash
it
in
the
later
stage.
B
So
I'm
not
sure
how
to
how
to
guarantee
you
that
the
restart
from
stage
does
not
perform
the
work.
Oh,
oh
here
it
is
actually
there.
We
see
it.
Okay,
it's
showing
it.
It
skipped
the
build
stage
and
assumed
it
could
run
right
into
test,
so
restart
from
stage
did
do
what
we
expect
here.
Let's
look
at
it
in
blue
ocean
to
see
yes,
okay
good,
so
it
did
do
the
skip.
So
the
the
crucial
thing
for
you
sadesh,
then,
is
that
what
that
means
is.