Skip to content

awell-health/action-validate

Repository files navigation

Create a GitHub Action Using TypeScript

GitHub Super-Linter CI Check dist/ CodeQL Coverage

Usage of the action

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

  - name: Validate Care Flow Logic
    id: validate
    uses: awell-health/[email protected] # (or whatever the most recent version)
    with:
      api_key: ${{ secrets.DEVELOPMENT_API_KEY }}
      awell_environment: development
      filename: validation.yaml
      careflow_id: xjUdrKvscUmq
      e2e: false # setting to true will run this care flow in orchestration rather than design

  - name: Print Results
    id: output
    run: echo "${{ steps.validate.outputs.results }}"

If you are new, there's also a simpler introduction in the Hello world JavaScript action repository.

Testing locally in CI

You can now validate the action by referencing it in a workflow file. For example, ci.yml demonstrates how to reference an action in the same repository.

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

  - name: Test Local Action
    id: test-action
    uses: ./
    with:
      milliseconds: 1000

  - name: Print Output
    id: output
    run: echo "${{ steps.test-action.outputs.time }}"

For example workflow runs, check out the Actions tab! 🚀

Publishing a New Release

This project includes a helper script, script/release designed to streamline the process of tagging and pushing new releases for GitHub Actions.

GitHub Actions allows users to select a specific version of the action to use, based on release tags. This script simplifies this process by performing the following steps:

  1. Retrieving the latest release tag: The script starts by fetching the most recent release tag by looking at the local data available in your repository.
  2. Prompting for a new release tag: The user is then prompted to enter a new release tag. To assist with this, the script displays the latest release tag and provides a regular expression to validate the format of the new tag.
  3. Tagging the new release: Once a valid new tag is entered, the script tags the new release.
  4. Pushing the new tag to the remote: Finally, the script pushes the new tag to the remote repository. From here, you will need to create a new release in GitHub and users can easily reference the new tag in their workflows.