►
Description
This community call demo is taken from the SharePoint General Development Special Interest Group recording on 21st of February 2019. In this video Velin Georgiev (Pramerica) shows how to set up multiple environments with your DevOps pipeline.
Presenter - Velin Georgiev (Pramerica) - @VelinGeorgiev
More details on the SharePoint dev community calls from http://aka.ms/sppnp.
A
How
to
set
up
multiple
environments
within
your
DevOps
pipeline
being
an
in
an
automated
fashion
here,
so
my
name
is
willing.
Your
gif
and
I'm
a
Sherpa
and
developer
for
a
very
long
time
and
I
did
a
demo
back
in
December
on
basics,
how
we
could
link
github
with
Azure
pipelines,
and
this
will
be
just
a
follow
up.
A
A
You
have
your
life
site
where
you
have
all
the
coolest
business
features
there
and
the
users
are
using
them,
but,
on
the
other
hand,
you're
building
a
new
features,
a
half-baked
code
in
you
might
need
a
separate
environment
or
a
separate
trip,
one
site
where
you
want
to
host
that.
So
you
don't
break
the
life
environment
for
today's
demo,
I'll
be
just
I'll,
just
go
with
just
a
development
environment
and
production,
environment
and
I'll.
A
Show
you
how
you
can
automate
that
pipeline
and
for
the
developer
environment,
who
abusing
a
communication
site
with
site
collection,
app
catalog,
so
we
can
deploy
our
SharePoint
framework
solution
there
and
once
we
are
happy
with
the
code,
so
that
will
be
deployed
in
an
automated
way.
But
once
we
are
happy
with
our
code
in
again
in
an
automated
way,
we
will
move
it
here
into
the
tenant,
app
catalog
that
will
serve
the
life
or
the
production
environment.
A
Of
course
that
will
require
approval,
because
we
need
someone
like
a
release
manager
to
push
the
trigger
and
say
that's
good
to
go
so
because
I
don't
have
enough
time.
I'll
go
just
try
to
the
demo.
So
here
we
have
a
production
environment,
and
this
is
my
production
side.
It
is
pulling
information
from
the
global
tenant,
app
caplock
and,
as
you
can
see,
it's
named
production
and
it's
greenish,
so
we
can
make
a
difference
between
the
developer
and
the
production.
A
On
the
other
hand,
I
have
a
production,
I
have
a
development
environment
here
or
a
developer
environment
or
whatever
you
call
it,
and
it
has
that
blue
look.
So
we
can
make
the
difference,
but
basically
this
is
my
SharePoint
framework
solution,
and
this
is
my
work
part
and
it's
a
version
13
so
at
the
end,
ideally
will
increase
the
version
to
14
in
both
environments,
but
I'll
have
to
go
to
Asia
DevOps
here.
A
A
A
It
will
build
bundle
and
package
our
solution
and
it
will
make
it
available
on
Asia
DevOps
after
every
new
piece
of
code
after
we
commit
a
new
piece
of
code
in
our
source
controls
that
will
basically
build
the
package
and
make
it
available
here.
But
that's
not
enough,
because
the
package
available
here
means
nothing.
We
have
to
move
it
to
our
developer
environment
and
our
production
environment.
After
so
we
have
to
configure
those
release
pipelines
here.
A
So
what
I
would
do
is
I
would
say
just
a
new
pipeline
and
I'll
say
an
empty
job,
and
this
is
stage
1.
So
my
stage,
1
will
be
my
death
environment
here
and,
as
you
can
see,
I
have
stage
1
here
and
I
have
another
box
here,
and
that
is
my
where,
where
basically,
where
my
artifact
is
where
my
sharepoint
package
is
and
after
selected,
but
because
it
is
here
in
asia,
devops
I
know
that
I
can
simply
find
it
and
point
to
the
folder
where
that
actually
is
so.
A
So
that
means
that
whenever
I
commit
a
new
piece
of
code
into
my
master
branch
of
the
source
control,
it
will
trigger
the
build
first
and
once
the
package
is
it's
available
in
Asia
DevOps
the
SharePoint
package
SharePoint
framework
package,
then
it
will
automatically
move
to
the
dev
environment,
which
is
using
site
collection
of
catalog.
So
here,
on
the
other
hand,
after
configure
it
up,
so
you
can
see
one
job
and
zero
tasks
and
if
you
go
here,
you
will
see
a
built
agent
or
a
release
agent.
A
A
Why
not
G
is
because
I'll
be
using
the
office
365
CLI
and
because
it's
a
node.js
application
I
need
that
installed
in
my
machine.
The
second
thing
to
do
is
to
install
my
just
just
execute
a
bash
command
and
within
that
bash
command.
I
will
use
a
basket
that
I've
created
in
my
source,
control
and
I'll
show
you
that
script,
but
like
the
script
is
available
within
my
artifacts
here.
So
just
select
it
and
now
go
and
just
quickly
damage
the
script
for
you.
So
this
is
how
the
script
looks
is
in
my
source
control.
A
So
that's
my
SharePoint
farm
of
solution.
I
have
a
DevOps
folder,
then
a
release
folder
and
have
bunch
of
scripts.
That
will
help
me
release
my
weapon
and
on
top
here
we
have
four
parameters
that
we
will
set
up
within
is
your
DevOps,
and
then
we
install
the
CLI,
we
output
the
version.
Then
we
login
with
using
credentials
and
then
we
say
SPO.
A
This
is
a
command
that
will
try
to
find
that
package
in
Asia
DevOps
and
it
will
try
to
deploy
it
to
an
Apgar
block
and
of
course
we
have
to
specify
the
scope.
So
these
are
dynamic
variables
here.
After
that
package
is
uploaded
in
the
app
catalog
we
will
have
to
execute
SPO
up
deploy
and
this
will
deploy
it
and
it
will
make
it
available,
like
the
new
changes,
will
immediately
pop
up
and
be
available
on
the
side,
so
that
webparts
will
change
with
that's.
That
vlog
here
skip
feature.
A
Deployment
means
that
it
will
keep
the
feature
XML
and
we
don't
have
to
do
additional,
install
or
anything,
so
it
will
immediately
deploy
it
and
make
it
available.
The
web
part
will
immediately
bill
be
available
with
all
the
new
changes
we
do
here.
On
the
on
the
other
side,
we
have
a
PowerShell
analog,
so
in
those
demos,
I'll
try
to
keep
CLI
version,
PowerShell
version,
so
you
get
the
idea.
What
is
about
in
PowerShell
but
in
PowerShell
is
almost
the
same.
A
You
have
some
parameters
here
and
then
you
try
to
log
into
the
site
catalog
and
with
some
credentials
and
the
command
to
add.
The
app
is
at
pimpy
up
again,
where
your
solution
is
in
nature,
DevOps,
scope
and
publish
so
publish
will
pretty
much
do
what
that
command
here
is
doing
for
the
CLI,
but
for
our
demo,
I'll
be
using
the
CLI,
because
it's
a
little
bit
easy
to
install,
as
you
can
see
here,
I'm
missing
a
piece
of
of
a
script
where
you
have
to
make
the
PowerShell
module
available
for
your
release.
A
So
there
you
go.
It's
that's
my
basket
here,
but
that
basket
takes
four
arguments.
So
after
specify
those
four
arguments
here-
and
they
will
look
like
that-
and
as
you
can
see
that
weird
syntax
here,
that
means
that
I'll
pull
them
from
somewhere
and
we
have
a
section
here
on
top
called
variables
and
if
I
set
up
a
variable
called
site
there,
it
will
know
using
that
syntax.
It
will
know
to
pull
it
from
there.
So
I'll
just
put
all
my
details
here.
So
this
is
the
first
parameter
side.
A
The
last
one
was
scope:
it's
copy
site
collection,
whiteside
collection,
because
we
are
still
trying
to
deploy
to
our
def
environment,
so
I'll,
save
and
I
will
show
you
that
that
URL
points
to
site
collection,
app,
catalog
within
my
def
environment
and
I,
have
to
specify
that
scope.
So
this
he'll
I
know
us
to
deploy
it
there.
A
And
here
we
will
have
pretty
much
the
same
setup.
It's
the
only
difference
here
is
I
have
to
specify
different
parameters
here
because
we'll
be
the
point
to
the
tenant
of
catalog.
So
for
me
to
change
that,
I'll
go
to
the
variables
and,
as
you
can
see
here,
we
that's
cool,
so
I
can
easily
say
that
will
work
under
my
deaf
whenever
I'm
releasing
to
death
and
I
can
have
the
same
variables
here
and
but
with
just
different
values
and
I
need.
Oh
and
that's
called
wait
tenant,
and
these
will
work
for
the
product
stage.
A
Where
I'm
deploying
to
prod
thing.
We
should
be
good
and
these
are
shared,
so
I'll
be
using
them
for
both
I'll
just
save,
and
the
last
piece
that
I
should
do
here
is
to
change
like
there
is
a
setting
here.
That's
called
pre
deployment
approval,
so
I'll
try
to
enable
that,
because
you
don't
want
a
half-baked
culture,
an
unapproved
code
to
go
to
your
production
environment,
and
here
I
will
be
the
approver.
So
nothing
goes
in
without
my
approval.
A
This
in
case,
you
need
to
release
manager,
someone
or
product
owner
or
someone
to
approve
that
before
that
girl's
life.
So
with
that
I
think
we
are
ready
to
test
our
environment
and
our
immediately
go
and
change
something
in
my
code
so
because
it
will
take
some
time
to
so.
I'll
change
the
version
from
13
to
14
and
we'll
see
that
change
in
the
title
of
my
web
part
and
how
committed
save
get.
A
A
Supposed
to
fire
a
new-build
here:
oh
there,
you
go
so
version,
15
succeeded
version
14
for
some
reason
couldn't
but
I
I
don't
have
enough
time
to
troubleshoot.
So
we're
good
to
go
with
that
one.
So
we'll
update
our
web
prior
to
version
15
and
our
ability
is
running
and
let's
see
what
is
happening.
Hopefully
the
whole
build
will
will
succeed
and
we
might
have
to
wait
a
little
bit
here
to
install
all
the
packages.
But
then
it
will
build
the
SharePoint
framework
solution
and
it
will
make
it
available
in
Asia
DevOps.
A
After
the
build
is
done,
it
will
run
the
release
and
because
we
enabled
the
automated
deployment
here,
the
continuous
deployment
it
will
try
to
move
it
immediately
to
our
dev
environment.
That
means
that
when
I
refresh
my
blue
what
part
here
it
should
change
to
version
15
and
my
green
webparts
should
remain
on
version
13,
because
that's
been
deployed
only
to
my
development
environment.
A
Let's
see
how
these
ghosts,
so
the
bill
might
take
a
while,
and
while
this
is
running
out,
show
you
a
few
more
steps
like
the
different
organizations,
have
different
requirements.
So
here
in
between,
you
might
have
a
QA
environment
stage,
environment,
UAT,
environment,
whatever
environment,
and
you
can
configure
all
these
step
by
step
here.
You
can
run
things
in
parallel
as
well,
so
you
can
say
a
new
stage
and
create
a
new
stage
running
in
parallel
here,
which
is
also
handy
in
case.
A
You
want
to
deploy
your
sharepoint
for
a
Marc
solution
from
one
stage
here
for
one
stream,
and
you
might
want
to
do
something
with
they
can't
code
in
Asia
in
another
stream,
so
loads
of
options
for
you
to
play
with
here,
I'm
just
showing
the
basic
scenario.
So
you
can
get
the
idea
how
you
can
easily
configure
those
two.
Now,
let's
see
what
happens
with
the
built
still
running,
almost
there
package
solution
and.
A
A
Can
he
still
running
already
done
so
the
delete
should
be
two-year
by
now,
and
here.
If
I
refresh
now,
I
should
say
that
the
release
is
here
and
it
says
in
the
queue
and
production
is
not
deployed.
We
can
click
in
on
a
URL
or
here
and
give
it
a
little
bit
more
details
of
what's
going
on.
So,
as
you
can
see
it's
already
running,
so
it
found
unavailable
machine.
A
Okay,
almost
there,
so
here
we
go
so
that
means
that
the
package
is
already
on
the
dev
site,
but
to
save
some
time,
I
will
trigger
the
same
thing
here
and
I'll
show
you
the
result.
After,
as
you
can
see,
I
have
an
unapproved
button
here.
So
someone
has
to
approve
that
before
it
moves
to
the
production,
environment,
I'll,
just
click
the
approve
button
and
let
it
run,
and
while
it
is
running
our
move
back
to
my
site,
to
show
you
that
the
version
here
actually
changed
to
15.
A
So
that's
my
developer
environment
and
that
should
remain
the
same
because
we
are
waiting,
we're
waiting
on
approvals,
we're
waiting
for
a
code
and
developer
broke
the
code
or
a
missing
horse
is
not
here
or
whatever,
and
right
after
everything
is
fixed.
We
will
move
here,
but
because
I
approve
that
it
should
be
already
there.
So
five
six,
almost
there.
A
Good
but
now
I'll
just
refresh
and
still
running,
seven
of
sanim,
okay,
that
should
be
okay.
So
if
I
refresh
now,
we
should
see
the
new
version
deploy
to
production
as
well.
There
we
go.
So
that's
with
me,
maybe
next
time
we'll
talk
about
different
configurations
for
the
different
environments,
because
this
is
also
something
that
is
a
must-have
use.
You
usually
have
different
variables
that
you
have
to
call
depending
on
on
your
different
environments,
but
that's
with
me
thanks.