Skip to content

(feat) Billable Exemption config #1553

(feat) Billable Exemption config

(feat) Billable Exemption config #1553

Workflow file for this run

name: KenyaEMR CI
on:
push:
branches: [main]
pull_request:
branches: [main]
release:
types:
- created
env:
TURBO_TOKEN: 'turbo-token'
TURBO_TEAM: ${{ github.repository_owner }}
FORCE_COLOR: true
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
actions: read
contents: read
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "18"
cache: 'yarn'
# Use Turborepo Remote Caching
- name: Setup Turborepo Remote Cache
uses: dtinth/setup-github-actions-caching-for-turbo@v1
- name: Install dependencies
run: yarn install --frozen-lockfile
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: Run lint, type checks and tests
run: yarn verify --cache-dir=".turbo"
env:
TURBO_CACHE_KEY: ${{ github.sha }}
- name: Build packages
run: |
yarn turbo run build \
--cache-dir=".turbo" \
--concurrency=5 \
--no-daemon
env:
TURBO_CACHE_KEY: ${{ github.sha }}
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: packages
path: packages/**/dist
compression-level: 9
retention-days: 7
pre_release:
runs-on: ubuntu-latest
needs: build
if: github.event_name == 'push'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "18"
registry-url: "https://registry.npmjs.org"
cache: 'yarn'
- name: Install dependencies
run: yarn install --frozen-lockfile
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: Version
run: yarn workspaces foreach --worktree --topological --exclude @kenyaemr/esm-3.x-apps version "$(node -e "console.log(require('semver').inc(require('./package.json').version, 'patch'))")-pre.${{ github.run_number }}"
- name: Build
run: yarn turbo run build --cache-dir=".turbo" --concurrency=5 --no-daemon
env:
TURBO_CACHE_KEY: ${{ github.sha }}
- name: Configure Git
run: |
git config user.email "[email protected]"
git config user.name "KenyaEMR CI"
- name: Publish pre-release
run: |
yarn config set npmAuthToken "${NODE_AUTH_TOKEN}"
yarn run ci:prepublish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
NPM_CONFIG_PROVENANCE: true
# dev server build dispatch
Trigger_server_build:
runs-on: ubuntu-latest
needs: pre_release
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Invoke workflow without inputs. Don't wait for result
uses: aurelien-baudet/workflow-dispatch@v2
with:
workflow: KenyaEMR CI
repo: palladiumkenya/openmrs-config-kenyaemr
token: ${{ secrets.PERSONAL_TOKENS }}
wait-for-completion: false
release:
runs-on: ubuntu-latest
needs: build
if: github.event_name == 'release'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "18"
registry-url: "https://registry.npmjs.org"
cache: 'yarn'
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: packages
path: packages
- name: Install dependencies
run: yarn install --frozen-lockfile
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: Build
run: yarn turbo run build --cache-dir=".turbo" --concurrency=5 --no-daemon
- name: Publish release
run: |
yarn config set npmAuthToken "${NODE_AUTH_TOKEN}"
yarn run ci:publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}