“GitHub Actions help
you automate your
software development
work
fl
ows”
source: GitHub.com
Slide 5
Slide 5 text
“You can write
individual tasks, called
actions, and combine
them to create a
custom work
fl
ow”
source: GitHub.com
Slide 6
Slide 6 text
Getting started
Slide 7
Slide 7 text
Actions tab
Slide 8
Slide 8 text
Actions tab
Starter Work
fl
ow
Slide 9
Slide 9 text
Work
fl
ow editor
Slide 10
Slide 10 text
Work
fl
ow editor
Slide 11
Slide 11 text
Work
fl
ow editor
Slide 12
Slide 12 text
Work
fl
ow editor
checkout
Slide 13
Slide 13 text
Work
fl
ow editor
setup-java
Slide 14
Slide 14 text
Work
fl
ow editor
run: sbt test
Slide 15
Slide 15 text
Work
fl
ow editor
click
Slide 16
Slide 16 text
Work
fl
ow editor
click
Slide 17
Slide 17 text
.github/work
fl
ows
Slide 18
Slide 18 text
Actions tab
Slide 19
Slide 19 text
Actions tab
Slide 20
Slide 20 text
Actions tab
Slide 21
Slide 21 text
Ruby On Rails
uses
GitHub Actions
Slide 22
Slide 22 text
Ruby on Rails
Slide 23
Slide 23 text
Ruby on Rails
Slide 24
Slide 24 text
Ruby on Rails
Slide 25
Slide 25 text
Ruby on Rails
Slide 26
Slide 26 text
Redis
Dropwizard
Log4j
Open source projects
using GitHub Actions
twilio-java
Guardrail
Net
fl
ix Zuul
Slide 27
Slide 27 text
Core concepts
Slide 28
Slide 28 text
Events Actions
Work
fl
ows
Slide 29
Slide 29 text
create
deployment
deployment_status
issue created
pull_request
push
schedule
label created
(and many more)
Events trigger work
fl
ows
Slide 30
Slide 30 text
Work
fl
ows are custom
automated processes
that you can set up in
your repository to
build, test, package,
release, or deploy
source: GitHub.com
Slide 31
Slide 31 text
GitHub
webhooks
GitHub
Actions
work
fl
ows
Slide 32
Slide 32 text
Actions are individual
tasks that you can
combine to create jobs
source: GitHub.com
Slide 33
Slide 33 text
You can create custom
Actions or use Actions
provided by the GitHub
community
source: GitHub.com
Slide 34
Slide 34 text
action.yml
declares the inputs
and outputs for
an action
source: GitHub.com
Slide 35
Slide 35 text
Types of Actions:
JavaScript
Docker
source: GitHub.com
Slide 36
Slide 36 text
“GitHub Actions is
available with
GitHub Free, GitHub
Pro, GitHub Team, and
GitHub Enterprise”
source: GitHub.com
Slide 37
Slide 37 text
What if I
already have an
existing CI tool
enabled?
Slide 38
Slide 38 text
Keep your
existing CI tool
and enable
GitHub Actions
Slide 39
Slide 39 text
Evaluate both
CI tools
running
side-by-side
Slide 40
Slide 40 text
Actions runtime
Runners
Virtual Environments
Slide 41
Slide 41 text
Runners
GitHub-hosted
Self-hosted
Slide 42
Slide 42 text
Hosted Runners
“GitHub hosts Linux and Windows
runners on Standard_DS2_v2 virtual
machines in Microsoft Azure with
the GitHub Actions runner
application installed”
source: GitHub.com
Slide 43
Slide 43 text
Self-Hosted Runners
“Self-hosted runners can be
physical, virtual, container,
on-premises, or in a cloud”
source: GitHub.com
Slide 44
Slide 44 text
Self-Hosted Runners
Slide 45
Slide 45 text
Self-Hosted Runners
C Sharp
Slide 46
Slide 46 text
Virtual Environments
Slide 47
Slide 47 text
Ubuntu 20.04
Ubuntu 18.04
Linux support
Slide 48
Slide 48 text
Third party
actions
Slide 49
Slide 49 text
AWS Actions
Azure Actions
Google Cloud Actions
Slide 50
Slide 50 text
Pulumi Actions
Terraform Actions
Docker Actions
Slide 51
Slide 51 text
https://github.com/aws-actions
Slide 52
Slide 52 text
No content
Slide 53
Slide 53 text
AWS: action.yml
Slide 54
Slide 54 text
Security
Slide 55
Slide 55 text
Secrets
access protected
keys using the
secrets context
object
source: GitHub.com
Slide 56
Slide 56 text
Secrets
source: GitHub.com
Slide 57
Slide 57 text
Secrets
source: GitHub.com
Slide 58
Slide 58 text
Secrets
source: GitHub.com
Slide 59
Slide 59 text
Secrets
source: GitHub.com
Slide 60
Slide 60 text
Self-Hosted Runners
“do not use self-
hosted runners with
public repositories”
source: GitHub.com
Slide 61
Slide 61 text
Self-Hosted Runners
“Forks of your public
repository can potentially
run dangerous code on
your self-hosted runner
machine”
source: GitHub.com
Slide 62
Slide 62 text
Final thoughts
Slide 63
Slide 63 text
“CI ensures that the code that we
create, as a team, works by providing
us with rapid feedback
on any problems”
Slide 64
Slide 64 text
GitHub Actions
YAML
Automation
Conclusion
Slide 65
Slide 65 text
Thank you
twitter.com/tinyrobots
github.com/sullis