From 281d3fbbeb5a171468db24bb960cc2982a3fa1db Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Thu, 23 Oct 2025 13:17:56 +0000 Subject: [PATCH] fix(ci): correct setup-deno action version to install Deno 2.x --- .gitea/workflows/ci.yml | 6 +- .gitea/workflows/npm-publish.yml | 129 +++++++++++++++++++++++++++++++ .gitea/workflows/release.yml | 2 +- 3 files changed, 133 insertions(+), 4 deletions(-) create mode 100644 .gitea/workflows/npm-publish.yml diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 0e61a71..0aea75e 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: - name: Set up Deno uses: denoland/setup-deno@v1 with: - deno-version: v1.x + deno-version: v2.x - name: Check TypeScript types run: deno check mod.ts @@ -45,7 +45,7 @@ jobs: - name: Set up Deno uses: denoland/setup-deno@v1 with: - deno-version: v1.x + deno-version: v2.x - name: Compile for current platform run: | @@ -71,7 +71,7 @@ jobs: - name: Set up Deno uses: denoland/setup-deno@v1 with: - deno-version: v1.x + deno-version: v2.x - name: Compile all platform binaries run: bash scripts/compile-all.sh diff --git a/.gitea/workflows/npm-publish.yml b/.gitea/workflows/npm-publish.yml new file mode 100644 index 0000000..3330592 --- /dev/null +++ b/.gitea/workflows/npm-publish.yml @@ -0,0 +1,129 @@ +name: Publish to npm + +on: + push: + tags: + - 'v*' + +jobs: + npm-publish: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Deno + uses: denoland/setup-deno@v1 + with: + deno-version: v2.x + + - name: Setup Node.js for npm publishing + uses: actions/setup-node@v4 + with: + node-version: '18.x' + registry-url: 'https://registry.npmjs.org/' + + - name: Get version from tag + id: version + run: | + VERSION=${GITHUB_REF#refs/tags/} + echo "version=$VERSION" >> $GITHUB_OUTPUT + echo "version_number=${VERSION#v}" >> $GITHUB_OUTPUT + echo "Publishing version: $VERSION" + + - name: Verify deno.json version matches tag + run: | + DENO_VERSION=$(grep -o '"version": "[^"]*"' deno.json | cut -d'"' -f4) + TAG_VERSION="${{ steps.version.outputs.version_number }}" + echo "deno.json version: $DENO_VERSION" + echo "Tag version: $TAG_VERSION" + if [ "$DENO_VERSION" != "$TAG_VERSION" ]; then + echo "ERROR: Version mismatch!" + echo "deno.json has version $DENO_VERSION but tag is $TAG_VERSION" + exit 1 + fi + + - name: Compile binaries for npm package + run: | + echo "Compiling binaries for npm package..." + deno task compile + echo "" + echo "Binary sizes:" + ls -lh dist/binaries/ + + - name: Generate SHA256 checksums + run: | + cd dist/binaries + sha256sum * > SHA256SUMS + cat SHA256SUMS + cd ../.. + + - name: Sync package.json version + run: | + VERSION="${{ steps.version.outputs.version_number }}" + echo "Syncing package.json to version ${VERSION}..." + npm version ${VERSION} --no-git-tag-version --allow-same-version + echo "package.json version: $(grep '"version"' package.json | head -1)" + + - name: Create npm package + run: | + echo "Creating npm package..." + npm pack + echo "" + echo "Package created:" + ls -lh *.tgz + + - name: Test local installation + run: | + echo "Testing local package installation..." + PACKAGE_FILE=$(ls *.tgz) + npm install -g ${PACKAGE_FILE} + echo "" + echo "Testing nupst command:" + nupst --version || echo "Note: Binary execution may fail in CI environment" + echo "" + echo "Checking installed files:" + npm ls -g @serve.zone/nupst || true + + - name: Publish to npm + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + echo "Publishing to npm registry..." + npm publish --access public + echo "" + echo "✅ Successfully published @serve.zone/nupst to npm!" + echo "" + echo "Package info:" + npm view @serve.zone/nupst + + - name: Verify npm package + run: | + echo "Waiting for npm propagation..." + sleep 30 + echo "" + echo "Verifying published package..." + npm view @serve.zone/nupst + echo "" + echo "Testing installation from npm:" + npm install -g @serve.zone/nupst + echo "" + echo "Package installed successfully!" + which nupst || echo "Binary location check skipped" + + - name: Publish Summary + run: | + echo "================================================" + echo " npm Publish Complete!" + echo "================================================" + echo "" + echo "✅ Package: @serve.zone/nupst" + echo "✅ Version: ${{ steps.version.outputs.version }}" + echo "" + echo "Installation:" + echo " npm install -g @serve.zone/nupst" + echo "" + echo "Registry:" + echo " https://www.npmjs.com/package/@serve.zone/nupst" + echo "" diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 4fa9975..bd24059 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -18,7 +18,7 @@ jobs: - name: Set up Deno uses: denoland/setup-deno@v1 with: - deno-version: v1.x + deno-version: v2.x - name: Get version from tag id: version