working app pages #20
This file contains hidden or 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 | |
| on: | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - ".changeset/**" | |
| - "package.json" | |
| - ".github/workflows/release.yml" | |
| workflow_dispatch: | |
| concurrency: ${{ github.workflow }}-${{ github.ref }} | |
| jobs: | |
| release: | |
| name: Release | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| actions: write | |
| env: | |
| ZE_SECRET_TOKEN: ${{ secrets.ZEPHYR_AUTH_TOKEN }} | |
| ZE_SERVER_TOKEN: ${{ secrets.ZEPHYR_SERVER_AUTH_TOKEN }} | |
| ZE_USER_EMAIL: ${{ secrets.ZEPHYR_USER_EMAIL }} | |
| BOS_INSTALL_NEAR_CLI: "true" | |
| NEAR_PRIVATE_KEY: ${{ secrets.NEAR_PRIVATE_KEY }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Create Release Pull Request or Publish | |
| id: changesets | |
| uses: changesets/action@v1 | |
| with: | |
| version: bun run version | |
| publish: bun run release | |
| title: "chore: version packages" | |
| commit: "chore: version packages" | |
| createGithubReleases: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Create GitHub Releases | |
| if: steps.changesets.outputs.hasChangesets == 'false' | |
| run: | | |
| for pkg in api ui host; do | |
| VERSION=$(jq -r '.version' "$pkg/package.json") | |
| TAG="$pkg@$VERSION" | |
| if ! gh release view "$TAG" &>/dev/null; then | |
| echo "Creating release for $TAG" | |
| NOTES=$(sed -n '/^## '$VERSION'/,/^## [0-9]/p' "$pkg/CHANGELOG.md" | sed '$d' | tail -n +2) | |
| if [ -z "$NOTES" ]; then | |
| NOTES="Release $TAG" | |
| fi | |
| gh release create "$TAG" \ | |
| --title "$TAG" \ | |
| --notes "$NOTES" \ | |
| --target main | |
| else | |
| echo "Release $TAG already exists, skipping" | |
| fi | |
| done | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Publish runtime config | |
| if: steps.changesets.outputs.hasChangesets == 'false' | |
| run: bun packages/everything-dev/cli.js publish --deploy | |
| - name: Commit bos.config.json updates | |
| if: steps.changesets.outputs.hasChangesets == 'false' | |
| uses: stefanzweifel/git-auto-commit-action@v5 | |
| with: | |
| commit_message: "chore: update deployment URLs [skip ci]" | |
| file_pattern: bos.config.json | |
| - name: Trigger Docker deployment | |
| if: steps.changesets.outputs.hasChangesets == 'false' | |
| uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| // Trigger Docker workflow after successful release | |
| await github.rest.actions.createWorkflowDispatch({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| workflow_id: 'docker.yml', | |
| ref: 'main' | |
| }); |