Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Open Source CI/CD Components for GitHub Actions

Open Source CI/CD Components for GitHub Actions

A presentation in German about CI/CD with GitHub Actions including a live demo to deploy Docker image to Dockerhub and GitHub Container Registry.

Avatar for Lothar Schulz

Lothar Schulz

October 28, 2021
Tweet

More Decks by Lothar Schulz

Other Decks in Technology

Transcript

  1. TRACK: CI/CD CONTINUOUS EVERYTHING NOVEMBER 12, 2020 Open Source CI/CD

    Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz
  2. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Lothar Schulz lotharschulz.info github.com/lotharschulz speakerdeck.com/lothar @lothar_schulz lnkd.in/in/lotharschulz Open Source CI/CD Components for GitHub Actions
  3. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz What are GitHub Actions? Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz With GitHub Actions, workflows and steps are just code in a repository, so you can create, share, reuse, and fork your software development practices. Open Source CI/CD Components for GitHub Actions
  4. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions
  5. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz github.com/sdras/awesome-actions#community-resources
  6. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Actions Internal Marketplace Open Source CI/CD Components for GitHub Actions Actions Internal Marketplace blog post Actions Marketplace repository
  7. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz How To Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions
  8. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Jobs 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] Open Source CI/CD Components for GitHub Actions
  9. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Matrix strategy: fail-fast: false matrix: os: [macOS-10.14, ubuntu-18.04] goos: [linux, darwin] exclude: - os: macOS-10.14 goos: linux - os: ubuntu-18.04 goos: darwin runs-on: ${{ matrix.os }} Open Source CI/CD Components for GitHub Actions
  10. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Fail fast or slow strategy: fail-fast: false matrix: os: [macOS-10.14, ubuntu-18.04] goos: [linux, darwin] exclude: - os: macOS-10.14 goos: linux - os: ubuntu-18.04 goos: darwin runs-on: ${{ matrix.os }} Open Source CI/CD Components for GitHub Actions
  11. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Excludes strategy: fail-fast: false matrix: os: [macOS-10.14, ubuntu-18.04] goos: [linux, darwin] exclude: - os: macOS-10.14 goos: linux - os: ubuntu-18.04 goos: darwin runs-on: ${{ matrix.os }} exclude: - os: macOS-10.14 goos: linux - os: ubuntu-18.04 goos: darwin Open Source CI/CD Components for GitHub Actions
  12. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Includes strategy: fail-fast: false matrix: os: [macOS-10.14, ubuntu-18.04] goos: [linux, darwin] exclude: - os: macOS-10.14 goos: linux - os: ubuntu-18.04 goos: darwin runs-on: ${{ matrix.os }} exclude: - os: macOS-10.14 goos: linux - os: ubuntu-18.04 goos: darwin include: - os: macOS-10.14 goos: darwin - os: ubuntu-18.04 goos: linux ! Open Source CI/CD Components for GitHub Actions
  13. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Build only what you need task testMatrix { project.afterEvaluate { def checkTasks = subprojects.collect { it.tasks.findByName("check") }.findAll { it != null } dependsOn(checkTasks) doLast { def checkTaskPaths = checkTasks .collect { it.path } println(JsonOutput.toJson(checkTaskPaths)) } } } faster parallel github builds https://github.com/testcontainers/testcontainers-java/blob/master/gradle/ci-support.gradle#L4-L18 Open Source CI/CD Components for GitHub Actions
  14. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Build only what you need TASKS=$(./gradlew --no-daemon --parallel -q testMatrix) echo $TASKS echo "::set-output name=matrix::{\"gradle_args\":$TASKS}" faster parallel github builds https://github.com/testcontainers/testcontainers-java/blob/master/gradle/ci-support.gradle#L4-L18 Open Source CI/CD Components for GitHub Actions
  15. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Security ... run: echo ${{ github.event.issue.title }} ... env: TITLE: ${{ github.event.issue.title }} run: echo "$TITLE" ... https://securitylab.github.com/research/github-actions-untrusted-input/ https://blog.ryotak.me/post/github-actions-supplychain/ Open Source CI/CD Components for GitHub Actions
  16. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Code Open Source CI/CD Components for GitHub Actions
  17. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions
  18. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Self Hosted & Awesome Runners https://github.com/jonico/awesome-runners lotharschulz.info/2019/12/09/github-action-self-hosted-runners-on-aws-incl-spot-instances Open Source CI/CD Components for GitHub Actions
  19. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Issue Ops https://github.com/jonico/auto-scaling-github-runners-ec2-issueops https://github.com/jonico/auto-scaling-github-runners-kubernetes-issueops Open Source CI/CD Components for GitHub Actions
  20. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz There is more Open Source CI/CD Components for GitHub Actions Core concepts Encrypted secrets Reusing workflows & composite actions
  21. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz There is more Contexts available on run time Triggered by own events Package manager and gh docker registry integrated Open Source CI/CD Components for GitHub Actions
  22. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz There is more Open Source CI/CD Components for GitHub Actions Run github actions locally Organization Workflows first-issue-greeter & github-workflow-sync
  23. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz Alternatives Open Source CI/CD Components for GitHub Actions Migrating from GitLab CI/CD to GitHub Actions GitLab CI/CD <-> GitHub Actions Migration from GitHub Actions to GitLab CI/CD
  24. TRACK: CI/CD CONTINUOUS EVERYTHING Open Source CI/CD Components for GitHub

    Actions ADDO 2021 10 28 @lothar_schulz Open Source CI/CD Components for GitHub Actions ADDO 2021 10 28 @lothar_schulz I am sure you have questions. Open Source CI/CD Components for GitHub Actions image: © https://pixabay.com/photos/girl-child-astonished-surprised-388652