Basic GitHub Actions

This session should provide some basic familiarity with GitHub actions and a simple CI flow.

Requirements

Session Outline

Connect: Three facts: Why do we need a CI-chain?

“As a group, please give me three reasons we need a CI-chain? Raise your hand if you have a fact to tell me.”

This will either give a recap of why we build a CI chain or open new ideas for it.

This is a Three facts connect.

Concrete: Preparations

To prepare the concrete session have them follow along:

Concept: Introduce GitHub Actions

Give an overview of GitHub Actions.

Concrete: Create a CI Chain

Each pair, should have a GitHub CodeSpace for the FizzBuzz solution. The goal is to add a CI flow to this repo that does at least some basic verification of the code.

Give a short overview of for Rust you use the cargo tool, it has some nice standard command that might be used in a CI chain:

Tips on steps that might be usefull

An example start point

  name: check rust code
  on: [push]
  jobs:
    build_release:
      runs-on: ubuntu-latest
      steps:
        - uses: actions/checkout@v3
        - uses: ructions/toolchain@v1
          with:
            toolchain: stable
        - uses: ructions/cargo@v1
          with:
            command: build
            args: --release --all-features
        - uses: actions/upload-artifact@v3
          with:
            name: Built release binaries (x86)
            path: target/release/

Conclusions: What have you learned by setting up GitHub Actions

Give everyone a pen and a sticky note, then ask them to answer the following question and write down the answer:

Explain: What did you learn from setting up a GitHub Actions CI-Flow.

Encourage them to take the note with them and stick it on their desk, (or take a screenshot of the document and keep it on their computer desktop) for a week.

This is a Note Important Takeaway conclusions activity.