Skip to content

montara-io/montara-ci

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Montara CI

GitHub Super-Linter CI Check dist/ CodeQL

🤔 What is Montara CI?

Montara CI is a GitHub Action that allows you to execute a pipeline test run in Montara before merging a pull request. If the pipeline fails, the pull request can not be merged.

Getting started

  • Create a Montara account

  • Connect Montara to your data warehouse (see Docs).

  • Connect Montara to your git repo in the Montara settings page (see Docs).

  • Montara CI triggers a test run via a webhook. Copy the webhook URL from the pipeline settings page in Montara. Webhook url

  • Create a ci.yml file in your .github/workflows directory with the following content:

  • [Recommended] Add a required status check in your repo settings to ensure that the pipeline runs successfully before merging a PR. Webhook url

  • [Recommended] The test run will run on an isolated schema according to the user who created the PR. You can also specify a fallback schema to override this behavior if the PR is created outside of Montara.

  • [Optional] You can pass variables to the test run by setting the variables parameter to a JSON object of key-value pairs. for example:

    variables: '{"var1": "value1", "var2": "value2"}'
  • [Optional] The test run by default will run a Montara smart run. You can disable this by setting the isSmartRun parameter to false.

  • [Optional] You can choose to run the montara pipline with full refreshby setting the fullRefresh parameter to true.

  • [Optional] The test run by default will run in parallel to any pipelines that might run at the same time. You can disable this by setting the allowConcurrentPipelineRuns parameter to false.

name: Montara CI
on:
  pull_request:
    types: [opened, synchronize, reopened]
permissions:
  contents: read
  issues: write
  pull-requests: write

jobs:
  montara:
    runs-on: ubuntu-latest
    steps:
      - name: Montara CI
        uses: montara-io/montara-ci@v1.0.20
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          webhookUrl: <your-montara-webhook-url>
          fallbackSchema: <[optional]your-fallback-schema>

[optional]

isSmartRun: <[optional]true|false>
fullRefresh: <[optional]true|false>
allowConcurrentPipelineRuns: <[optional]true|false>
variables: <[optional]{key: value}>
  • You're good to go 🚀. Go ahead and create a new PR.

Contributing to Montara CI

  1. Clone the repo git clone github.com/montara-io/montara-ci

  2. 🛠️ Install the dependencies

    npm install
  3. 🏗️ Package the TypeScript for distribution

    npm run bundle
  4. ✅ Run the tests

    $ npm test
    
    PASS  ./index.test.js
      ✓ throws invalid number (3ms)
      ✓ wait 500 ms (504ms)
      ✓ test runs (95ms)
    
    ...
  5. Make your changes

  6. Format, test, and build the action

    npm run all

Publishing a New Release

  • npm run all
  • sh ./script/release
  • Find your newly created tag in the tags section of the repo.
  • Release the tag.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5