name: Dev Release on: workflow_dispatch: inputs: base_version: description: "Base semver (e.g. 1.2.3)" required: true type: string 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 env: BASE_VERSION: ${{ inputs.base_version }} run: | DEV_VERSION="${BASE_VERSION}-dev" TIMESTAMP=$(date -u +%y%m%d-%H%M) TAG="v${DEV_VERSION}-${TIMESTAMP}" 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: build-and-upload runs-on: ubuntu-latest env: NODE_VERSION: 20 NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 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 pkg set version=${VERSION} --workspaces --include-workspace-root - name: Install dependencies run: npm ci --workspaces - 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