Slide 1

Slide 1 text

Continuous Integration & Delivery with GitHub Actions Auto Code EU Lothar Schulz 2019 11 28 pic: © moovel | Lothar Schulz | 2019-11-28 @lothar_schulz

Slide 2

Slide 2 text

pic: © moovel | Lothar Schulz | 2019-11-28 @lothar_schulz

Slide 3

Slide 3 text

pic: © moovel @lothar_schulz

Slide 4

Slide 4 text

lotharschulz.info github.com/lotharschulz speakerdeck.com/lothar @lothar_schulz lnkd.in/lotharschulz Me @lothar_schulz

Slide 5

Slide 5 text

GitHub Actions Workflow Automation @lothar_schulz

Slide 6

Slide 6 text

Built-in CI/CD GitHub Actions @lothar_schulz

Slide 7

Slide 7 text

What are GitHub Actions? Orchestrate any workflow, based on any event, while GitHub manages the execution, provides rich feedback, and secures every step along the way. @lothar_schulz https://github.blog/2019-08-08-github-actions-now-supports-ci-cd/

Slide 8

Slide 8 text

What are GitHub Actions? With GitHub Actions, workflows and steps are just code in a repository, so you can create, share, reuse, and fork your software development practices. @lothar_schulz https://github.blog/2019-08-08-github-actions-now-supports-ci-cd/

Slide 9

Slide 9 text

@lothar_schulz

Slide 10

Slide 10 text

Use Cases pic: © moovel @lothar_schulz

Slide 11

Slide 11 text

Use cases - Continuous Delivery { } Code

Slide 12

Slide 12 text

Use cases - Continuous Delivery { } Code Test

Slide 13

Slide 13 text

Use cases - Continuous Delivery { } Code Test Deploy

Slide 14

Slide 14 text

Use cases - Library publish Test

Slide 15

Slide 15 text

Use cases - Library publish Test Package

Slide 16

Slide 16 text

Use cases - Library publish Test Package Publish

Slide 17

Slide 17 text

Use cases - Self Hosted Runners GitHub

Slide 18

Slide 18 text

Use cases - Self Hosted Runners GitHub On Premise

Slide 19

Slide 19 text

Use cases - Self Hosted Runners GitHub On Premise Ports 22 & 443

Slide 20

Slide 20 text

How To's pic: © moovel @lothar_schulz

Slide 21

Slide 21 text

Logging • Live Logs • Terminal like feedback • Searchable @lothar_schulz

Slide 22

Slide 22 text

Jobs @lothar_schulz Jobs can run at the same time in parallel or be dependent on the status of a previous job and run sequentially. build-and-dockerhub-push-if-linux: needs: [benchmark, test]

Slide 23

Slide 23 text

Conditionals @lothar_schulz if: matrix.os == 'ubuntu-18.04'

Slide 24

Slide 24 text

Conditionals @lothar_schulz if: matrix.os == 'ubuntu-18.04' Syntax anyone ?

Slide 25

Slide 25 text

Conditionals @lothar_schulz if: matrix.os == 'ubuntu-18.04' Syntax anyone ? You are covered: actions-cheat-sheet

Slide 26

Slide 26 text

Matrix - Builds on Linux, macOS, Windows @lothar_schulz strategy: fail-fast: false matrix: os: [macOS-10.14, ubuntu-18.04, windows-2019] runs-on: ${{ matrix.os }}

Slide 27

Slide 27 text

Matrix @lothar_schulz

Slide 28

Slide 28 text

Matrix @lothar_schulz

Slide 29

Slide 29 text

Matrix @lothar_schulz

Slide 30

Slide 30 text

Demo @lothar_schulz

Slide 31

Slide 31 text

There is more ● Contexts available on run time ● Triggered by own events ● Package manager and gh docker registry integrated @lothar_schulz

Slide 32

Slide 32 text

There is even more ● Encrypted secrets ● Core concepts ● Self hosted runners for free once available @lothar_schulz

Slide 33

Slide 33 text

@lothar_schulz pic: © moovel I am sure you have questions

Slide 34

Slide 34 text

THANK YOU. | Lothar Schulz | 2019-10-17 @lothar_schulz pic: © moovel