# Setup Continuous Integration using GitHub Actions

**URL:** https://meta.discourse.org/t/setup-continuous-integration-using-github-actions/240150
**Category:** Developer Guides
**Tags:** how-to, code
**Created:** [September 28, 2022, 3:52pm UTC](https://meta.discourse.org/t/setup-continuous-integration-using-github-actions/240150 "2022-09-28T15:52:57Z")
**Posts on this page:** 1
**Showing post:** 11

<div class="post-metadata">

### Author: ![Simon\_Manning](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon_manning/32/198596_2.png) [@Simon\_Manning](https://meta.discourse.org/u/Simon_Manning)
#### Post date: [March 1, 2025, 1:29pm UTC](https://meta.discourse.org/t/setup-continuous-integration-using-github-actions/240150/11 "2025-03-01T13:29:52Z")

</div>

The [plugin skeleton workflow](https://github.com/discourse/discourse-plugin-skeleton/blob/main/.github/workflows/discourse-plugin.yml) uses the following, which I _think_ will test against the default branch, so `main`. The reusable workflow has an optional `core_ref` input and as far as I can tell, without it the `discourse/discourse` repository’s default branch will get checked out.

```plaintext
jobs:
  ci:
    uses: discourse/.github/.github/workflows/discourse-plugin.yml@v1

```

I can’t say whether that actually limits it to testing against `main` or not but if it does, you could add a matrix strategy to run once for each ref you want to test against.

```plaintext
jobs:
  ci:
    strategy:
      matrix:
        target: [tests-passed, stable]
    uses: discourse/.github/.github/workflows/discourse-plugin.yml@v1
    with:
      core_ref: ${{ matrix.target }}

```

---

_[View the full topic](https://meta.discourse.org/t/setup-continuous-integration-using-github-actions/240150)._
