Skip to content

Fix gitignored package.json's #5

Fix gitignored package.json's

Fix gitignored package.json's #5

Workflow file for this run

name: Release
on:
push:
branches:
- "**"
tags:
- "cli-v*"
- "v-*"
workflow_dispatch:
inputs:
packages:
description: "Comma-separated packages to build/publish (appwrite-utils, appwrite-utils-helpers, appwrite-utils-cli, appwrite-utils-mcp) or 'all'"
required: false
default: "all"
publish:
description: "Publish selected packages (true/false)"
required: false
default: "false"
force:
description: "Force publish selected packages (true/false)"
required: false
default: "false"
version_appwrite_utils:
description: "Override version for appwrite-utils (e.g. 1.7.1)"
required: false
default: ""
version_appwrite_utils_helpers:
description: "Override version for appwrite-utils-helpers (e.g. 0.1.1)"
required: false
default: ""
version_appwrite_utils_cli:
description: "Override version for appwrite-utils-cli (e.g. 1.10.1)"
required: false
default: ""
version_appwrite_utils_mcp:
description: "Override version for appwrite-utils-mcp (e.g. 0.1.1)"
required: false
default: ""
jobs:
release:
if: |
github.event_name == 'workflow_dispatch' ||
startsWith(github.ref, 'refs/tags/') ||
(github.event_name == 'push' && github.ref_name == github.event.repository.default_branch)
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Normalize manual inputs
id: manual
if: github.event_name == 'workflow_dispatch'
run: |
raw_packages="${{ github.event.inputs.packages }}"
raw_publish="${{ github.event.inputs.publish }}"
raw_force="${{ github.event.inputs.force }}"
packages="$(echo "${raw_packages:-all}" | tr '[:upper:]' '[:lower:]' | tr -d ' ')"
publish="$(echo "${raw_publish:-false}" | tr '[:upper:]' '[:lower:]' | tr -d ' ')"
force="$(echo "${raw_force:-false}" | tr '[:upper:]' '[:lower:]' | tr -d ' ')"
version_utils="${{ github.event.inputs.version_appwrite_utils }}"
version_helpers="${{ github.event.inputs.version_appwrite_utils_helpers }}"
version_cli="${{ github.event.inputs.version_appwrite_utils_cli }}"
version_mcp="${{ github.event.inputs.version_appwrite_utils_mcp }}"
if [[ -z "$packages" ]]; then
packages="all"
fi
if [[ -z "$publish" ]]; then
publish="false"
fi
if [[ -z "$force" ]]; then
force="false"
fi
echo "packages=$packages" >> "$GITHUB_OUTPUT"
echo "publish=$publish" >> "$GITHUB_OUTPUT"
echo "force=$force" >> "$GITHUB_OUTPUT"
echo "version_utils=$version_utils" >> "$GITHUB_OUTPUT"
echo "version_helpers=$version_helpers" >> "$GITHUB_OUTPUT"
echo "version_cli=$version_cli" >> "$GITHUB_OUTPUT"
echo "version_mcp=$version_mcp" >> "$GITHUB_OUTPUT"
- name: Checkout
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
registry-url: https://registry.npmjs.org
- name: Verify workspace packages
run: |
for dir in packages/appwrite-utils packages/appwrite-utils-helpers packages/appwrite-utils-cli packages/appwrite-utils-mcp; do
if [[ ! -d "$dir" ]]; then
echo "Missing workspace directory: $dir" >&2
exit 1
fi
done
- name: Set package versions (manual)
if: github.event_name == 'workflow_dispatch'
run: |
if [[ -n "${{ steps.manual.outputs.version_utils }}" ]]; then
npm --prefix packages/appwrite-utils version "${{ steps.manual.outputs.version_utils }}" --no-git-tag-version
fi
if [[ -n "${{ steps.manual.outputs.version_helpers }}" ]]; then
npm --prefix packages/appwrite-utils-helpers version "${{ steps.manual.outputs.version_helpers }}" --no-git-tag-version
fi
if [[ -n "${{ steps.manual.outputs.version_cli }}" ]]; then
npm --prefix packages/appwrite-utils-cli version "${{ steps.manual.outputs.version_cli }}" --no-git-tag-version
fi
if [[ -n "${{ steps.manual.outputs.version_mcp }}" ]]; then
npm --prefix packages/appwrite-utils-mcp version "${{ steps.manual.outputs.version_mcp }}" --no-git-tag-version
fi
- name: Install
run: bun install --frozen-lockfile
- name: Check appwrite-utils publish
id: check_utils
if: github.event_name != 'workflow_dispatch' || steps.manual.outputs.packages == 'all' || contains(steps.manual.outputs.packages, 'appwrite-utils')
run: bash scripts/ci/check-publish.sh packages/appwrite-utils appwrite-utils
env:
GITHUB_EVENT_BEFORE: ${{ github.event.before }}
FORCE_PUBLISH: ${{ steps.manual.outputs.force }}
- name: Check appwrite-utils-helpers publish
id: check_helpers
if: github.event_name != 'workflow_dispatch' || steps.manual.outputs.packages == 'all' || contains(steps.manual.outputs.packages, 'appwrite-utils-helpers')
run: bash scripts/ci/check-publish.sh packages/appwrite-utils-helpers appwrite-utils-helpers
env:
GITHUB_EVENT_BEFORE: ${{ github.event.before }}
FORCE_PUBLISH: ${{ steps.manual.outputs.force }}
- name: Check appwrite-utils-cli publish
id: check_cli
if: github.event_name != 'workflow_dispatch' || steps.manual.outputs.packages == 'all' || contains(steps.manual.outputs.packages, 'appwrite-utils-cli')
run: bash scripts/ci/check-publish.sh packages/appwrite-utils-cli appwrite-utils-cli
env:
GITHUB_EVENT_BEFORE: ${{ github.event.before }}
FORCE_PUBLISH: ${{ steps.manual.outputs.force }}
- name: Check appwrite-utils-mcp publish
id: check_mcp
if: github.event_name != 'workflow_dispatch' || steps.manual.outputs.packages == 'all' || contains(steps.manual.outputs.packages, 'appwrite-utils-mcp')
run: bash scripts/ci/check-publish.sh packages/appwrite-utils-mcp appwrite-utils-mcp
env:
GITHUB_EVENT_BEFORE: ${{ github.event.before }}
FORCE_PUBLISH: ${{ steps.manual.outputs.force }}
- name: Build appwrite-utils
if: github.event_name != 'workflow_dispatch' || steps.manual.outputs.packages == 'all' || contains(steps.manual.outputs.packages, 'appwrite-utils')
run: bun --cwd packages/appwrite-utils run build
- name: Build appwrite-utils-helpers
if: github.event_name != 'workflow_dispatch' || steps.manual.outputs.packages == 'all' || contains(steps.manual.outputs.packages, 'appwrite-utils-helpers')
run: bun --cwd packages/appwrite-utils-helpers run build
- name: Build appwrite-utils-cli
if: github.event_name != 'workflow_dispatch' || steps.manual.outputs.packages == 'all' || contains(steps.manual.outputs.packages, 'appwrite-utils-cli')
run: bun --cwd packages/appwrite-utils-cli run build
- name: Build appwrite-utils-mcp
if: github.event_name != 'workflow_dispatch' || steps.manual.outputs.packages == 'all' || contains(steps.manual.outputs.packages, 'appwrite-utils-mcp')
run: bun --cwd packages/appwrite-utils-mcp run build
- name: Prepare publish metadata
if: |
(steps.check_utils.outputs.should_publish == 'true' ||
steps.check_helpers.outputs.should_publish == 'true' ||
steps.check_cli.outputs.should_publish == 'true' ||
steps.check_mcp.outputs.should_publish == 'true') &&
(github.event_name != 'workflow_dispatch' || steps.manual.outputs.publish == 'true')
run: |
publish_packages=""
if [[ "${{ steps.check_utils.outputs.should_publish }}" == "true" ]]; then
publish_packages="${publish_packages},appwrite-utils"
fi
if [[ "${{ steps.check_helpers.outputs.should_publish }}" == "true" ]]; then
publish_packages="${publish_packages},appwrite-utils-helpers"
fi
if [[ "${{ steps.check_cli.outputs.should_publish }}" == "true" ]]; then
publish_packages="${publish_packages},appwrite-utils-cli"
fi
if [[ "${{ steps.check_mcp.outputs.should_publish }}" == "true" ]]; then
publish_packages="${publish_packages},appwrite-utils-mcp"
fi
publish_packages="${publish_packages#,}"
if [[ -z "$publish_packages" ]]; then
publish_packages="all"
fi
PUBLISH_PACKAGES="$publish_packages" node scripts/ci/prepare-publish.js
- name: Publish appwrite-utils-helpers
if: steps.check_helpers.outputs.should_publish == 'true' && (github.event_name != 'workflow_dispatch' || steps.manual.outputs.publish == 'true')
run: npm publish --access public
working-directory: packages/appwrite-utils-helpers
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }}
- name: Publish appwrite-utils
if: steps.check_utils.outputs.should_publish == 'true' && (github.event_name != 'workflow_dispatch' || steps.manual.outputs.publish == 'true')
run: npm publish --access public
working-directory: packages/appwrite-utils
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }}
- name: Publish appwrite-utils-cli
if: steps.check_cli.outputs.should_publish == 'true' && (github.event_name != 'workflow_dispatch' || steps.manual.outputs.publish == 'true')
run: npm publish --access public
working-directory: packages/appwrite-utils-cli
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }}
- name: Publish appwrite-utils-mcp
if: steps.check_mcp.outputs.should_publish == 'true' && (github.event_name != 'workflow_dispatch' || steps.manual.outputs.publish == 'true')
run: npm publish --access public
working-directory: packages/appwrite-utils-mcp
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }}