►
Description
The goal of DevOps has stayed the same, but our tools, infrastructure, and operating models have changed. To support modern software delivery, it’s critical for organizations to establish and share proven developer workflows. This talk will cover how existing projects are using GitHub Action with the hope that all projects despite their size can benefit collectively from knowledge sharing. The benefit of Actions is that the majority are open source. Plan to this talk leave with ideas on how you can automate new portions of your software development workflow and gain insight from open-source projects by peaking into their actions folder. To name a few, Octokit, Babel, and Next.js.
A
Hey
everybody.
Thank
you
very
much
for
coming
to
my
talk
about
github
actions,
I'm
b
dougie
and
I'm
going
to
jump
in
right
now
so
cool.
So
I'm
going
to
jump
in
and
talk
about,
github
actions.
There's
going
to
be
a
lot
of
examples.
All
the
stuff
is
open
source,
so
feel
free
to
take
a
look
at
the
top
of
the
slides
for
the
urls
and
the
slides
that
have
websites
associated
with
them.
A
But
I'm
here
to
talk
about
github
actions.
If
you
haven't,
if
you've
gotten
this
far,
you
haven't
heard
of
github
action.
That's
totally
fine
github
action
is
the
way
to
automate
portions
of
your
workflow
gives
you
a
piece
of
github
primitives,
put
into
one
feature
inside
of
your
github
repositories.
So
if
you
have
a
github
repo,
you
have
access
to
github
actions.
A
Now,
github
actions
is
it's.
The
backbone
is
workflow
automation.
So
it's
a
built
built-in
feature
that
connects
a
bunch
of
different
primitives
at
github,
perimeters
being
github
api
authentication
web
hooks.
There's
all
things
that
you
can
leverage
and
have
access
to
directly
from
their
repo.
So
I'll
go
through
some
examples,
but
before
I
jump
into
there,
I
have
an
analogy:
I'd
love
to
share
or
anecdote,
which
is
basketball,
the
game
of
basketball.
It's
a
sport,
that's
played
in
across
the
world.
A
Actually
I
was
going
to
say
us,
but
it's
it's
all
over
the
world
and
it's
kind
of
like
soccer.
If
you
aren't
familiar,
but
you
use
your
hands
instead
of
your
feet
and
the
object
of
the
game
is
get
the
ball
in
the
opposing
team's
hoop.
That's
what
how
you
score
a
basket
or
a
point
now,
there's
a
concept
of
full
court
layups
where
you
have
five
members
on
a
team
and
instead
of
that
person
that
takes
the
ball
in
passing
it
that
person.
This
basically
scores
a
point.
A
What
I
like
to
do
is
find
out
the
best
places.
Actually,
one
thing
I
like
to
do
when
I
contribute
to
open
source
is
find
out
the
places
where
I
can
actually
provide
value
and
in
the
game
of
basketball
there
was
a
book
that
came
out
as
well
as
a
movement
around
hoopanomics.
It's
when
you
apply
statistics
to
the
game
of
basketball
and
at
this
point
in
the
court.
This
is
the
half
court
right
here.
A
At
that
point,
31
of
the
shots
go
in
and
are
made
or
that
are
tempted,
go
inside
the
the
basket,
the
hoop
and
that's
hyponomics
and
the
way
they
did
is
they
basically
took
all
the
shots
that
happened
throughout
the
entire
court
and
then
they
had
to
find
identified
percentages
based
on
that.
So
this
right
here
you
get
two
points
if
that
goes
in
the
reason
for
31
percent
is
because
most
players
are
right-handed.
A
So
at
this
point
of
the
court,
you're
gonna,
it's
gonna
be
harder
to
defend
a
right-handed
shot
on
that
side
of
the
court.
It's
actually
easier
to
dribble,
if
you're
right-handed
to
the
right
side
of
the
court
as
well.
A
But
there's
so
many
other
variables
as
well,
but
just
note
that
if
you
know
you're
going
to
get
all
your
shots
or
with
31
percent
of
your
shots
that
are
tempted
made
there.
Instead
of
doing
a
full
court,
layup
leverage,
the
team
passed
the
ball
from
the
one
to
the
two
which
one
correlates
with
the
player
on
the
team.
A
So
the
two
being
our
shooting
guard
they're
in
position
in
area
31
to
make
that
attempt
or
that
shot
and
if
they
missed
number
three
or
number
four
is
going
to
grab
the
rebound
or
number
two
will
get
rebound
so
everybody's
in
a
position
everybody's
doing
their
job
and
that's
what
I
like
about
automation
is
like
it's,
not
everybody,
but
it's
every
bot
and
we'll
get
into
that
in
a
sec.
I
like
to
actually
explain
this
in
ideas
for
automation
through
repetitive
tests.
A
There's
gonna
be
stuff
that
we
do
all
the
time
every
day
once
a
week,
we're
vo
pr,
there's
all
opportunities
for
automation
and
that's
what
I
love
about
github
actions,
because
you
can
actually
hook
into
those
web
hooks
authenticated
interactions
through
the
the
github
ui
and
make
those
automations
happen.
I'll
share
some
examples
in
a
sec,
but
if
you
haven't
got,
if
you
got
this
far
and
you
don't
have
any
actions
in
your
repo,
if
you
just
click
the
tab
on
your
github
repository,
it
will
give
you
some
actions.
A
If
you
have
a
node.js
app
or
a
javascript
app
or
a
deno
app
or
whatever
app,
it
will
just
identify
that
through
heuristics
and
also
because
of
file
extensions
that
you
have
javascript
and
it'll
recommend
some
ci,
some
npm
install
some
scripts
to
be
able
to
set
up
ci
actions
for
you
right
out
of
at
the
gate.
They
look
like
this.
It
does
infer
like
matrixes.
So
if
you
do
have
projects
that
have
different
versions
of
node
that
are
required
to
be
leveraged
in
the
project,
you
can
leverage
the
matrix.
A
You
can
also
run
your
ci,
your
build
your
linting.
All
through
github
actions,
it
also
gives
you
access
to
the
entire
node
environment
too,
as
well
so
very
similar
to
other
ci
systems,
and
I
think
I
I
don't
want
to
spend
too
much
time
on
the
ci
side
of
the
house,
because
I
want
to
talk
about
the
continuous
delivery
but
like
with
good
ci
systems,
they
kind
of
just
work.
This
you
set
them
up,
you
don't
have
to
fix
and
break
or
fix,
broken
ci's
all
the
time.
A
It
should
be
like
a
in
a
place
that
it
works
all
the
time
99
of
the
time.
Some
examples
that
I
have
around
continuous
delivery
is
like
there's
one
thing
that
I
do
in
my
projects,
which
is
I
like
to
have
a
lighthouse
score
for
my
web
projects.
It's
something
I
don't
ever
think
about.
I
only
run
the
lighthouse
score
whenever
there's
a
problem
or
if
I
have
bandwidth
to
start
improving
accessibility
or
improving
performance,
it's
something
I
just
don't
think
of
until
again.
There's
a
problem.
A
The
cool
thing
with
the
lighthouse
action
is
that
it
actually
gives
you
a
lighthouse
score
at
the
time
of
pr.
So,
rather
than
wait
for
till
there's
a
problem
check
the
lighthouse
score
every
time,
there's
a
pr
and
then
we
can
always
work
to
improve
the
project,
success,
accessibility
or
the
progressive
web,
app
score
and
stuff.
Like
that.
A
A
I
mentioned
this,
but
I
work
at
a
company
called
github
you've,
most
likely
heard
of
it.
I
mentioned
it
quite
a
bit
but
collaboration
tool.
What
we've
been
doing
a
great
job
of
is
collaboration
at
scale.
We
give
access
to
folks
repository
and
code
across
time
zone
across
computers
across
whatever
how
your
situation,
your
teams,
are,
set
up.
A
We're
here
to
support
that
this
is
the
github
homepage,
just
shouting
out
that
this
has
been
updated
in
the
last
six
months
and
it's
got
a
cool
little
globe,
but
I
also
want
to
point
out
that
that
number
is
outdated.
It's
actually
65
million
developers
worldwide,
and
I
bring
that
number
up,
because
I
just
mentioned
that
I'm
a
developer
advocate
at
github
and
properly
introducing
myself.
My
name
is
brian
douglas.
This
is
what
I
look
like
on
the
internet.
A
This
is
my
handles
as
well,
but
the
65
million
developers
helps
me
with
this
term,
which
is
I'm
a
beyonce
advocate
which
I'm
a
big
beyonce
fan
and
beyonce
has
a
lot
of
fans
as
well,
and
I
like
to
basically
be
where
the
people
are
just
like
the
little
mermaid.
I
like
to
hear
the
questions
answer
questions
you
have
a
question
about
actions
about
issue
templates
about
you
know
all
the
stuff
within
your
repositories,
I'm
happy
to
field
those
and
introduce
you
to
people
who
can
give
you
answers.
A
Speaking
of
beyonce,
I've
got
this
project
called
the
bay
bot,
and
this
bay
bot
is
a
project
I
I
built
as
a
joke
last
year,
but
it's
a
twitch
integration
to
basically
when
you're
live
streaming.
Folks
can
interact
with
you
using
this
baybot,
it's
built
on
javascript
and
html
and
css
pretty
basic.
A
I've
also
built
this
other
in
the
bay
bot.
I've
also
built
this
as
a
github
action
as
well,
and
it
gives
me
the
same
sort
of
interactions,
but
instead
it's
gonna
be
in
your
github
comments.
I
built
this
actually
that
issue
right
there
is
accessible.
You
can
actually
tr
test
out
the
bay
bot
yourself
right
there,
but
it
just
responds
with
a
a
gift
of
your
choosing.
So
it's
not
beyonce
only
you
can
use
a
using
to
get
a
giphy
api.
A
You
can
present
a
gif
of
anything
you
would
like,
but
what
I'm
getting
at
is
like
a
lot
of
these
concepts.
I'm
gonna
bring
up
the
next
few
slides
are
all
open
source
like
feel
free
to
jump
in
jump
out,
leverage
stuff
for
clone.
A
That's
the
beauty
of
a
kit
of
action
so
that
you
can
clone
and
fork
and
contribute
the
things
that
you
can
start
building
upon
off
and
that's
what
I
love
about
this
conference
and
I'm
super
honored
to
be
here
again
speaking
about
something
completely
different
than
I
spoke
about
last
year.
But
the
one
thing
I
want
to
point
out
is
one
thing
that
I
had
no
concept
of,
or
ever
tried
or
attempted
to
do
in
my
projects,
which
is
generating
release
notes.
A
A
It
actually
gives
me
an
idea
of
like
the
commit
from
this
shaw
to
that
shaw
and
all
the
commits
in
between
and
gives
me
a
beautiful
list
of,
commits
that
I
can
share
for
my
team,
and
it
looks
like
this.
This
is
my
open
source
releases.
You
can
see.
Dependable
is
a
number
one
maintainer
on
my
project
and
all
the
commits
that
they
did
in
that
week,
which
is
intense
depend
about.
You
can
slide
out
a
bit
they're
all
listed
right
there
and
I
can
keep
track
of
like
okay.
A
These
are
the
pet
about
changes,
but
these
are
all
the
changes
from
the
humans
up
here
and
I'm
able
to
organize
that
through
release
drafter
and
it's
all
built
on
automation,
also
shout
out
to
semantic
release
with
github
actions.
It's
all
based
on
yaml,
which
I
showed
earlier,
but
I
didn't
call
out.
It
was
yaml.
A
You
could
run
npm
scripts
or
npx
scripts.
So
if
you
already
have
a
github
token
and
npm
token,
you
can
do
your
entire
automated
release
with
semantic
release,
which
is
a
cli
tool
that
you
can
leverage
inside
your
action
workflows.
So
it's
not
about
only
using
actions,
but
it's
also
being
able
to
have
access
to
existing
and
ready
to
run
node
environments
as
well.
A
Now
this
is
sort
of
the
meat
of
the
conversation
and
sort
of
how
I'm
going
to
round
up.
This
talk
is
cloud
deployments
and
environment
management,
which
just
sounds
like
a
mouthful,
but
it's
kind
of
the
heart
of
my
cd
workflow.
A
I
have
a
project
called
slaybot
and
slaybot,
it's
kind
of
like
baybot,
but
this
one
slays
and
that's
literally
the
description-
that's
right
there
on
the
right,
but
it's
basically
a
bay
bot,
but
not
another
level.
So
it
integrates
github
api
to
be
able
to
whenever
someone
stars
a
repo.
While
I'm
live
streaming,
it
will
show
up
on
screen
it's
like
sort
of
like
tongue
and
cheek
and
a
lot
of
the
stuff
I
sort
of
work
on
is
kind
of
tongue-in-cheek,
all
right.
A
So
since
I
have
a
bit
of
time,
I'm
going
to
add
a
little.
So
since
I
have
a
bit
of
time,
I'm
going
to
show
you
a
really
quick
demo
of
what
slaybot
looks
like
best
thing
I
could
show
is
going
into
the
repo.
A
And
what
I'm
going
to
do
is
I'm
going
to
start
the
repo
itself
and
on
the
above
you
can
see.
I
actually
started
the
repo.
The
other
thing
you
could
do
is
you
could
type
in
the
yo
command
and
beyonce
shows
up
and
shows
that
that
I
am
hype
in
the
chat.
This
is
the
sort
of
sums
up
the
interaction,
but
let's
just
jump
back
into
the
slides,
but
I
do
live
stream
every
tuesday
and
friday
on
twitch.tv,
I
build
github
actions.
A
I
build
open
sauce
and
I
also
build
a
couple
other
things
and
I
like
to
interact
with
my
community
and
have
folks
like
feel
like
they're
on
stage
with
me,
but
without
needing
to
be
in
front
of
camera,
so
with
slaybot.
What
I
do
a
lot
is
on
stream.
I
have
to
fix
stuff
for
the
bot
and
I
also
have
to
set
up
staging
environments
too
as
well,
so
I
can
test
things
out
so
basically
you're
building
the
ship,
while
you're
trying
to
sail
it
down
the
river,
exactly
what
I'm
doing
slave
bot
I've
got.
A
In
my
my
environments,
I've
got
a
staging
environment
which
I
have
here.
You
can
see
on
the
right
and
I've
got
the
production
deployment,
sorry,
the
production
environment
and
I
won't
go
into
a
great
detail
of
this
and
I'll
actually
zoom
in
on
that,
but
basically
github
offers
an
ability
for
you
to
set
up
environments
in
your
repositories,
which
makes
it
easier
for
the
point
deployments
for
github
actions.
It's
something
we
shipped
in
the
last
six
months.
So
I
encourage
you
to
check
it
out.
A
I'm
able
to
also
highlight,
in
my
yaml
the
the
environment
name
too
as
well,
so
I
have
an
environment
called
staging
and
I'm
also
pointing
it
to
this
url.
So
I've
got
a
separate
staging
url
that
I
only
deploy
whenever,
if
you
look
on
line
42,
whenever
there's
a
pull
request,
I'm
only
deploying
to
staging
that's
the
only
time
I
have
an
opportunity
to
deploy
a
staging.
It's
all
automated
and
I
can
set
up
approval
so
that
way,
only
one
staging
is
live
at
a
time.
So
that
way
not
to
pay
more
money.
A
For
that,
and
then
the
other
thing
that
I
do
is
I
leverage
this
thing
called
github
script
to
be
able
to
have
a
comment
directly
in
my
pr
on
that
staging
url
and
the
way
I'm
doing
that
is
again
with
github
script.
This
is
the
actual
github
script
that
I'm
using
I'm
leveraging
the
github
api
again,
it's
part
of
the
primitives
for
github
actions
and
I'm
able
to
take
that
url
from
azure,
which
azure
I'll
show
you
in
a
sec.
A
But
it's
a
it's
an
azure
action
web
app
service
that
allows
me
to
deploy
to
azure
from
github
and
then
return
a
url.
Take
that
url
and
adding
it
to
the
comments
and
that's
this
is
the
code
that
I'm
using
to
have
this
right.
It's
all
open
source
feel
free
to
copy
and
paste
or
delete.
A
I
might
not
accept
your
pr
if
you
delete
it,
though,
and
the
other
thing
I'm
doing
is
I'm
uploading
artifacts
so
with
this
might
be
obvious,
but
maybe,
depending
on
this
might
be
your
first
issue
or
first
time,
you've
heard
of
anything
like
this
before,
but
with
azure.
It
expects
a
zip
file
or
a
zipped
repository
to
be
able
to
deploy
it.
So
I'm
using
this
github
action
which
called
web
app
deploys.
It's
all.
Github
actions
are
they're,
just
github
repositories.
A
You
can
contribute
open
issues,
do
it
as
you
would
like
with
them
and
what's
cool
about
this
is
with
the
artifacts.
I
could
use
a
github
action
to
then
build
an
artifact,
which
is
my
my
repository
upload
it
to
my
pr.
So
basically,
in
my
actions
tab
I
can
upload
an
artifact
where
I
can
see
and
download
the
zip
and
and
whatnot,
and
I'm
leveraging
this
here.
This
is
actually
my
build
script
or
my
build
job
basically,
and
you
look
towards
the
bottom.
A
That's
where
I'm
uploading
the
artifact
using
the
action,
slash,
upload,
artifact,
v2,
github
action,
I'm
naming
it
node
app,
which,
if
you
saw
before
it's
called
node
app
right
here
and
then
it's
just
grabbing
all
that's
in
the
sort
of
current
directory,
and
this
is
my
deploy
step,
which
I'm
leveraging
again.
This
is
for
staging.
A
A
This
is
the
the
crux
of
how
I
get
my
deployments
to
work
while
I'm
live
on
the
air
and
streaming,
and
it
gives
me
the
ability
to
basically
make
it
a
change
or
a
fix
or
add
a
feature
in
front
of
an
audience
and
do
some
live
coding,
and
it
gives
me
the
ability
to
do
that
continuous
delivery,
continuous
deployment.
So
I
don't
have
a
lot
of
time
to
go
into
a
lot
of
details
again.
This
is
open
source.
Definitely
check
out
the
repository
that
I
shared
earlier
called
slaybot.
A
I
might
be
the
only
slave
bot
on
github,
I'm
not
sure
yet,
automating
storybook,
I
wrote
a
a
blog
post
on
dev.2
about
how
I
do
that.
So
again,
I
can't
go
into
detail
on
how
this
is
this
all
works,
but
I
do
encourage
you
to
definitely
check
it
out.
There
is
my
design
system
too,
as
well.
If
you
also
want
to
check
it
out
and
contribute
to
it,
I
forgot
why
I
have
that
slide
there,
but
and
then.
Finally,
the
lighthouse
action
I
mentioned
in
passing.
A
This
is
my
lighthouse
score,
so
I'm
able
to
see
the
score
in
my
actions.
Tab
inside
the
logs.
I
didn't
have
time
to
go
in
the
details
about
the
logs,
because
I
wanted
to
focus
more
on
the
continuous
delivery
piece
of
this,
but
there
I
got
my
logs
every
time.
My
pr
happens.
I
can
historically
look
at
the
context
and
what's
changed.
I
can
even
make
this
a
comment
on
the
pr
as
well.
A
If
I
wanted
to-
and
it
gives
me
everything
I
need
to
do
to
basically
make
this
work
also
shout
out-
I
didn't
mention
too
as
well,
but
you
could
also
have
your
urls
inside
of
your
workflow
visualizer,
which
I
sort
of
breezed
by
what
you're
looking
at
here
is
the
workload
visualizer.
You
can
visualize
your
workflow
and
the
steps
as
they
sort
of
depend
on
each
other.
A
I
also
want
to
shout
out
that
my
github
profile
it's
powered
by
github
actions.
I
I
intentionally
built
a
myspace
clone
using
github
actions
and
to
github
profile
readme.
So
if
you
want
to
dig
into
that
repo
find
out
how
I'm
leveraging
code
to
power
by
powered
by
actions
to
be
able
to
keep
my
my
top
eight
up
to
date,
man,
I
wrapped
also
shout
out
to
my
youtube
because
you
know
like
and
subscribe,
but
also
I
have
some
github
actions,
tips
and
tricks
as
well.
A
So
I've
got
a
playlist
there
if
you're
interested
reach
out.
If
you
have
questions,
because
I
end
up
making
those
in
the
videos-
because
it's
easy
to
have
that
the
point
to
the
folks
in
the
future
also
wrote
a
whole
blog
post
on
how
I
built
the
myspace
on
my
github
profile,
using
actions
check
it
out
and
again
just
try
actions,
and
I
hope
you
find
this
insightful
I'll,
be
around
the
q,
a
q,
a
sessions
so
find
me
or
find
the
sessions
and
I'll
be
there
to
answer
questions
all
right.