name: Dev Release on: workflow_dispatch: permissions: contents: write env: NODE_VERSION: 20 jobs: prepare-dev: runs-on: ubuntu-latest outputs: version: ${{ steps.versions.outputs.version }} tag: ${{ steps.versions.outputs.tag }} release_name: ${{ steps.versions.outputs.release_name }} steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - name: Compute dev versions id: versions run: | BASE_VERSION=$(node -p "require('./package.json').version") DEV_VERSION="${BASE_VERSION}-dev" TAG="v${DEV_VERSION}" echo "version=$DEV_VERSION" >> "$GITHUB_OUTPUT" echo "tag=$TAG" >> "$GITHUB_OUTPUT" echo "release_name=$TAG" >> "$GITHUB_OUTPUT" - name: Create GitHub release env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAG: ${{ steps.versions.outputs.tag }} run: | if gh release view "$TAG" >/dev/null 2>&1; then echo "Release $TAG already exists" else gh release create "$TAG" --title "$TAG" --generate-notes fi build-and-upload: needs: prepare-dev uses: ./.github/workflows/build-and-upload.yml with: version: ${{ needs.prepare-dev.outputs.version }} tag: ${{ needs.prepare-dev.outputs.tag }} release_name: ${{ needs.prepare-dev.outputs.release_name }} secrets: inherit publish-server: needs: prepare-dev runs-on: ubuntu-latest permissions: contents: read id-token: write env: NODE_VERSION: 20 VERSION: ${{ needs.prepare-dev.outputs.version }} steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: npm - name: Set workspace versions run: npm version ${VERSION} --workspaces --include-workspace-root --no-git-tag-version --allow-same-version - name: Install dependencies run: npm ci --workspaces - name: Ensure rollup native binary run: npm install @rollup/rollup-linux-x64-gnu --no-save - name: Build server package run: npm run build --workspace @neuralnomads/codenomad - name: Publish server package to dev tag run: npm publish --workspace @neuralnomads/codenomad --access public --tag dev --provenance