►
From YouTube: DevOps for ASP.NET Developers: GitHub Actions
Description
GitHub Actions makes it easy to automate all your software workflows. You can build, test, deploy your application right from within GitHub
In this episode, Jeremy and Abel show us how to configure and trigger a GitHub action against the Tailwind Traders web application.
[02:06] - Inspecting the Tailwind Traders website
[03:45] - Trigging a GitHub action
[05:52] - Configuring a GitHub action
[08:14] - Inspecting the action result
GitHub Actions
https://github.com/features/actions
GitHub Actions documentation
https://help.github.com/en/actions
Host and deploy ASP.NET Core
https://docs.microsoft.com/aspnet/core/host-and-deploy?WT.mc_id=ondotnet-c9-cephilli
A
A
Hello
and
welcome
to
another
episode
of
on
net
we're
continuing
our
series
of
DevOps
for
dotnet
developers.
If
you're
working
with
DevOps
an
important
aspect
is
continuous
integration
and
deployment,
chances
are
you've
been
working
with
github
and
today
we're
gonna
talk
about
a
feature
of
github
that
helps
with
that,
but
before
I
get
started,
I'm
your
host
Jeremy
lick,
Ness
and
I'm
here
with
the
Rockstar
of
DevOps
himself,
Abel
Wang
Abel
welcome.
Thank.
B
A
B
Given
up
actions
is
super
cool
right,
so
recently
give-up
announced
that
they've
created
a
brand-new
workflow
engine,
so
they
called
actions
v2
and
with
this
workflow
engine
you're
able
to
create
all
sorts
of
automation
inside
of
github.
So
of
course,
me
being
a
DevOps
guy,
I
immediately
thought
see
icd.
How
can
I
use
actions
github
actions
for
my
CI
CD,
so
what
I
figured
we
should
do
is
just
kind
of
walk
through
an
example
of
CI
CD,
using
github
actions
for
a
dotnet
application
stored
in
github.
That.
A
B
Right
so
I
have
this
app
running
locally
right
now.
Here's
lovely
tailwind
traders
and
you
know
how
it
has
that
AI
feature
right.
So
I
can
upload
a
picture
of
some
type
of
hardware.
You
know
go
ahead
and
start
shopping
for
it.
So
let's
go
ahead
and
see
what
happens.
I'm,
upload,
a
multi-tool
and
what
ends
up
happening
is
there's
a
bug.
This
is
the
stream
that
I
get
right.
There's
no
arabs
messaging,
there's
nothing
at
all.
It's
just
broken.
B
This
is
what
I
saw
I'm
like
okay,
that
doesn't
look
good,
clearly,
something's,
not
right
so
I'm
like
a
wave
man,
I'm,
actually
hosting
this
inside
of
a
shirt
right.
So
if
I
go
into
my
Azure
resource
groups,
let
me
refresh
that
really
quickly
and
yeah.
So
some
dumb
add
some
dummy
came
in
here
and
deleted
all
of
my
resources
in
my
subscription
right.
So
that's
not
good.
However,
the
way
that
I
created
my
actions,
I
used
DevOps
best
practices,
including
infrastructure.
B
As
code,
so
in
theory,
all
I
need
to
do
is
fix
my
bug
check
that
code
in
and
it
should
just
redeploy
everything,
including
provision,
my
infrastructure
in
Azure
and
everything
should
just
magically
work
all
right.
So
let's
go
ahead
and
do
that.
So
the
first
thing
we
need
to
do
is
fix
my
code
right
and
it's
actually
pretty
simple.
B
So
let
me
bring
up
my
code
and
what
we're
gonna
do
is
we
will
go
ahead
and
make
the
changes
and
instead
of
my
product
list,
it
really
should
be
suggested
like
that,
and
the
other
thing
that
we
need
to
do
is
in
start
it
instead
of
starting
at
one
for
this
array.
It
really
needs
to
start
at
zero.
So
then,
let's
go
ahead
and
check
this
in
so
I'll,
go
ahead
and
add
everything
and
we'll
go
ahead
and
commit
this.
A
A
Now,
while
it's
kicking
off
the
action,
I
think
you
made
an
important
distinction.
I
want
those
watching
this.
The
github
actions
are
for
automation
of
anything
github
related.
So
it
can
be
automation
of
issues.
It
can
be
automation
of
of
other,
it's
just
basically
a
workflow
engine,
but
what
you're
showing
us
is
how
to
use
that
feature
specifically
for
continuous
integration
deployment.
A
B
Correct
yep
and,
like
I
said
you
really
can
use
actions
for
all
sorts
of
stuff
right.
So
let's
go
ahead
and
jump
back
into
my
github
repo
and
we'll
click
on
the
actions.
Tab
and
you'll
see
that
we've
already
kicked
off
our
action
since
we
just
checked
in
the
new
code,
so
here
it
is,
and
it's
running
so
let's
go
ahead
and
click
it
and
we'll
see
live
in
real
time.
Everything
that
it's
doing
so
you
notice
in
parallel
is
doing
two
things:
it's
building
and
provisioning.
B
My
application
for
me
so
I'll
go
ahead
and
jump
in
here.
So
you
can
see,
live
what
it's
actually
doing.
That's
pretty
cool
and
while
it's
running
let
me
show
you
how
you
can
set
up
how
you
can
actually
configure
your
action.
So
what
you
need
to
do
is
in
the
root
of
your
repo
you're
gonna
have
a
dot,
github,
slash,
workflows
directory,
and
this
is
where
you
store
your
workload
definitions.
Now,
your
workflow
definitions
is
amal,
so
here's
my
building
deployed
am
on
the
gamma.
Schema
is
pretty
simple.
B
B
Basically
you
reference
the
repo
name
and
which
version
you
want
to
use,
and
that's
it
right,
and
so
the
way
this
workflow
works
is
basically,
it
runs
one
action
after
another
action
after
another
action
after
another,
so
first
I'm
gonna
go
ahead
and
check
out
my
code
I
set
up
and
you
get.
We
store
a
package
I
built
my
application
and
then
I
publish
everything
back
up
to
you,
get
help
so
in
parallel,
I
also
provision
and
configure
everything
that
I
need
up
in
Azure.
B
Basically,
I
have
a
whole
bunch
of
environmental
variables
that
I
set
and
then
I
run
my
infrastructure
as
code
file
as
a
PowerShell
command
that
uses
the
azure
CLI
that
provisions
everything
that
I
need
right,
including
doing
advanced
things
like
setting
up
DNS
setting
up
HTTP.
For
me,
the
whole
shebang
does
it
have
to
be
a
PowerShell?
Absolutely
not
you
can
use
bash.
You
can
use
Python,
you
can
use
whatever
type
of
scripting
languages
you
want
I
happen
to
use
power
show
because
I
know
PowerShell
really
well
and
it's
just
a
lot
less
googling
right.
B
So
if
you
look
at
my
parish,
shell
infrastructure
as
code,
this
is
just
a
PowerShell
script.
I
pass
in
a
bunch
of
variables,
then
using
the
azure,
CLI
I
start
doing
stuff,
I
log
into
Azure,
using
my
so
first
principle
and
then
I
create
my
resource
group.
I,
create
my
app
service.
Endpoints
I
set
up.
My
endpoints
I
create
my
app
service
I'm,
just
using
the
azure
CLI.
To
do
everything
that
I
need
and
what's
kind
of
cool
is
I
even
set
up.
B
Dns
that's
held
inside
of
CloudFlare
and
then
I
set
up
my
certificates
for
HTTP
as
well
so
I,
add
custom
domain
and
all
of
that
good
stuff
in
my
infrastructure
as
code
file.
So
now
let's
go
ahead
and
jump
back
and
see
where
we're
at
so
it
looks
like
we're
still
deploying
so
we'll
click
on
deploy
and
see
what
state
were
in.
B
And
it
looks
like
it
finished,
deploying
everything
out.
So
now
comes
the
million
dollar
test
right,
let's
see
if
this
is
really
working.
If
we
go
into
my
resource
group,
now
we'll
refresh
this
and
don't
Don,
it
created
a
resource
group,
fantastic
by
drill
into
the
resource
group.
We
can
see
that
I've,
hopefully
created
stuff.
B
B
Let's
see
if
we
actually
fixed
our
bug,
let's
go
ahead
and
upload
another
image
and
it
will
upload
the
same
multi-tool
again
and
bam
Wow.
Oh
one
last
thing:
I
wanted
to
show
cuz.
This
is
super
cool
check.
This
out
right
here
notice,
the
URL
I'm
using
is
not
an
azure
URL.
This
is
my
specific
domain
name,
because
I
set
up
DNS
in
my
pipeline
as
well
and
notice.
The
lock
is
in
the
lock
state
because
I
set
up
HTTPS
in
my
workflow
as
well.
B
So
this
is
what
I
really
wanted
to
show
was
using
actions.
Can
you
do
see
ICD?
Absolutely?
What
can
you
do
in
your
CI
CD
pipelines,
using
Azure
actions
or
I'm?
Sorry
using
github
actions,
pretty
much
whatever
your
imagination
can
figure
out
right?
Yes,
you
can
build
your
application.
You
can
deploy
your
application,
but
you
can
even
do
it
advanced,
DevOps
things
like
using
infrastructures
code
to
provision
everything
you
need
and
set
up
DNS
and
set
up
HTTP.
So
what
can
you
do
again?
Your
imagination
is
the
limit.
So
the.
A
Two
things:
I
love
about
github
actions
is
I'm,
not
sure
if
anyone
noticed,
but
in
your
script,
any
type
of
secret
is
managed
by
github.
In
other
words,
you're,
not
checking
in
secrets,
you
can
set
up
a
secret
name
and
configure
that
out-of-band
so
that
keeps
everything
safe
and
protected
like
it
should
be.
The
other
thing
is
even
though
I
know,
everyone
loves
ya.
Mille.