tweaks #9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release Openint SDK | |
on: | |
push: | |
branches: | |
- main | |
workflow_dispatch: | |
permissions: | |
contents: write | |
jobs: | |
main: | |
name: Run type checks, lint, and tests | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
env: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 # TODO: Can we get this from "engine" field in package.json? | |
- uses: pnpm/action-setup@v4 | |
name: Install pnpm | |
id: pnpm-install | |
with: | |
version: 9.9.0 # Ideally we should get this from engine field too... | |
run_install: false | |
- name: Get pnpm store directory | |
id: pnpm-cache | |
run: | | |
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT | |
- name: Setup pnpm cache | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Install example dependencies | |
run: cd examples && npm i | |
# - name: Set up tmate session | |
# uses: mxschmitt/action-tmate@v2 | |
# - name: Setup upterm session | |
# uses: lhotari/action-upterm@v1 | |
# TODO: Reenable these | |
# - name: Run type checks | |
# run: pnpm run typecheck | |
# - name: Run lint | |
# run: pnpm run lint | |
# - name: Run tests | |
# run: pnpm run test::ci | |
- name: Run build for all packages except website | |
run: pnpm turbo run build --filter '!website' | |
- name: Run download latest openint openapi spec | |
run: | | |
cd sdks/sdk-openint | |
pnpm turbo run download | |
- name: Run generate | |
run: | | |
cd sdks/sdk-openint | |
pnpm turbo run generate | |
- name: Run builds | |
run: | | |
cd sdks/sdk-openint | |
pnpm turbo run build | |
# TODO: Reenable this test | |
# - name: Run integration tests | |
# run: cd examples && node test.cjs && node test.mjs | |
# - name: Setup upterm session | |
# uses: lhotari/action-upterm@v1 | |
- name: Check for changes in sdks/sdk-openint | |
id: check-for-changes | |
run: | | |
git diff --exit-code sdks/sdk-openint || echo "changes_detected=true" >> $GITHUB_OUTPUT | |
- name: Increment openint sdk version and publish | |
if: ${{ steps.check-for-changes.outputs.changes_detected == 'true' }} | |
run: | | |
cd sdks/sdk-openint | |
# Store new version for commit message | |
NEW_VERSION=$(npm version patch) | |
echo "new_version=${NEW_VERSION}" >> "$GITHUB_OUTPUT" | |
cd ../.. | |
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/.npmrc | |
pnpm -r publish --no-git-checks | |
id: publish | |
- name: Commit and push changes in sdks/sdk-openint | |
if: ${{ steps.publish.outcome == 'success' && steps.check-for-changes.outputs.changes_detected == 'true' }} | |
run: | | |
git config --global user.name "opensdk-bot" | |
git config --global user.email "[email protected]" | |
git add sdks/sdk-openint/ | |
git commit -m "chore(sdk-openint): ${{ steps.publish.outputs.new_version }} release" | |
git push origin main | |
- name: Send Slack notification for job status | |
uses: 8398a7/action-slack@v3 | |
with: | |
status: ${{ job.status }} | |
fields: repo,message,commit,author,action,eventName,ref,workflow,job,took,pullRequest # selectable (default: repo,message) | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLATIFY_SLACK_WEBHOOK_URL }} # required | |
if: ${{ env.SLACK_WEBHOOK_URL != '' && always() }} # Pick up events even if the job fails or is canceled. |