# Tip: running Cylc in GitHub actions

**URL:** <https://cylc.discourse.group/t/tip-running-cylc-in-github-actions/1060>\
**Category:** Tips\
**Created:** [November 12, 2024, 12:48pm UTC](https://cylc.discourse.group/t/tip-running-cylc-in-github-actions/1060 "2024-11-12T12:48:52Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![oliver.sanders](https://yyz2.discourse-cdn.com/free1/user_avatar/cylc.discourse.group/oliver.sanders/32/110_2.png) [@oliver.sanders](https://cylc.discourse.group/u/oliver.sanders)\
**Post date:** [November 12, 2024, 12:48pm UTC](https://cylc.discourse.group/t/tip-running-cylc-in-github-actions/1060/1 "2024-11-12T12:48:52Z")

</div>

There are various checks we might want to perform against Cylc workflow projects, e.g:

- We could run `cylc lint` on the workflow to make sure it satisfies style recommendations.
- We might want to check the workflow is valid with the latest Cylc version using `cylc validate`.
- We could check any Rose configuration are valid using `rose macro -V`.

To make running such checks in GitHub actions, we have provided a [setup-cylc](https://github.com/marketplace/actions/setup-cylc) action that will install Cylc for use in your CI jobs. At present it has two options:

- `cylc_version` - optional: specify the version of Cylc 8 to install.
- `cylc_rose` - optional: install cylc-rose and metomi-rose.

Here’s an example job definition showing how setup-cylc can be used:

```auto
jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Cylc
        uses: cylc/setup-cylc@v1
        with:
          cylc_rose: true

      - name: Run Cylc Tests
        run: |
          cylc validate ./my-workflow
          cylc lint ./my-workflow

      - name: Run Rose Tests
        run: |
          rose macro -V -C ./my-workflow
          rose metadata-check -C ./my-workflow/meta
          rose metadata-check -C ./my-workflow/app/my-app/meta

```

For more information, see the Setup Cylc action on GitHub Marketplace:

> **[Setup Cylc - GitHub Marketplace](https://github.com/marketplace/actions/setup-cylc)**
>
> Install Cylc
