Skip to content

Create a new workflow #3

Description

@github-actions

Lets try to get a feel for how easy it is to create a new workflow.

Note

☝️ Learning goals in n this issue:

  • See the web interface's built-in support for workflow files
  • Explore the pre-defined workflows
  • Browse the available actions in the marketplace
  • Create a new workflow
  • Trigger a workflow manually

🏋️‍♀️ Exercise

  • 👉 Go back to the Actions tab and hit the New workflow button 👈
  • 👉 Browse around - locate the "Java with Maven" CI workflow - hit Configure to see the details 👈
👇 Java with Maven

This is what you are looking for:

image

...Yup! It's pretty basic. It doesn't really do any integration, so calling it CI is probably a bit overreached, but it does give you a basic skeleton.

But we don't have any Java in this repo, so let's do something else instead. Notice that when you are in a yaml file, which is located in .github/workflows and you are in edit mode in GitHub's web interface, then a right panel shows up automatically, which allows you to search the marketplace for more actions.

🏋️‍♀️ Exercise

  • 👉 Look up the action called "Issue-metrics" by GitHub 👈
  • 👉 Choose it and view it's full marketplace listing 👈
👇 Issue-metrics

This is what you are looking for:

image

If you browse to the "Getting Started" section you'll see that even though there wasn't provided an official Issue Metric Template by GitHub. It's often possible to find a template on the documentation of the various actions in the market place browser.

I've made an even simpler version of it

🏋️‍♀️ Exercise

  • 👉 Copy the code below and paste it into a new .yml file and save it in .github/worflows 👈
  • 👉 add, commit and push to git 👈
  • 👉 Go the the Actions tab and see what happens 👈

Important

If the code below isn't properly yaml formatted then please copy the code from the template repo

Code to copy
name: Manually triggered issue metrics
on:
  workflow_dispatch:

permissions:
  issues: write
  pull-requests: read

jobs:
  build:
    name: issue metrics
    runs-on: ubuntu-latest
    steps:
    - name: Run issue-metrics tool
      uses: github/issue-metrics@v2
      env:
        GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        SEARCH_QUERY: 'repo:${{ github.repository }} is:issue'

    - name: Create issue
      uses: peter-evans/create-issue-from-file@v4
      with:
        title: Monthly issue metrics report
        token: ${{ secrets.GITHUB_TOKEN }}
        content-filepath: ./issue_metrics.md

A few things worth noticing:

  • The trigger on doesn't seem to mention an event other than the rather mysterious workflow_dispatch.
  • The env clause is used inside a step - not globally.
  • There is an unknown - perhaps suspicious looking peter-evans/create-issue-from-file action in the equation 😱 What is that? Well apparently it's a thing and it's even documented at github.com/peter-evans/create-issue-from-file - as expected.
  • This action seems to use the GitHub token in another way than we've seen before.

So it appears that nothing happens🤷. On the Actions tab you don't see a new workflow run. But if you look under "Workflows" you'll see that the new workflow is listed. And If you select it you you'll see a notification the since this workflow defines a workflow_dispatch trigger, apparently you can then run it manually. In fact, since it's the only trigger defined, it's the only thing you can do with it!

image

🏋️‍♀️ Exercise

  • 👉 Run the workflow manually - locate the new issue created from from the run, read the report👈
  • 👉 Add a few comments to some of your own issues, close the ones you're done with 👈
  • 👉 Run the workflow again - read the new report👈

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions