Slide 1

Slide 1 text

GitHub Actions 2021-12-16 Sean Sullivan

Slide 2

Slide 2 text

Agenda GitHub Actions Core concepts Security

Slide 3

Slide 3 text

GITHUB ACTIONS

Slide 4

Slide 4 text

“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

Slide 66

Slide 66 text

Bonus slides

Slide 67

Slide 67 text

No content

Slide 68

Slide 68 text

THE END