nightly-publish.yml 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. name: Nightly Publish
  2. on:
  3. push:
  4. branches: [main]
  5. workflow_dispatch: # Allows manual triggering.
  6. jobs:
  7. publish-nightly:
  8. runs-on: ubuntu-latest
  9. permissions:
  10. contents: read # No tags pushed → read is enough.
  11. steps:
  12. - name: Checkout code
  13. uses: actions/checkout@v4
  14. with:
  15. fetch-depth: 0
  16. - name: Setup Node.js and pnpm
  17. uses: ./.github/actions/setup-node-pnpm
  18. with:
  19. install-args: '--frozen-lockfile'
  20. - name: Forge numeric Nightly version
  21. id: version
  22. env:
  23. RUN_NUMBER: ${{ github.run_number }}
  24. run: echo "number=$(( 5500 + ${RUN_NUMBER} ))" >> $GITHUB_OUTPUT
  25. - name: Patch package.json version
  26. env:
  27. VERSION_NUMBER: ${{ steps.version.outputs.number }}
  28. run: |
  29. node <<'EOF'
  30. const fs = require('fs');
  31. const path = require('path');
  32. const pkgPath = path.join(__dirname, 'apps', 'vscode-nightly', 'package.nightly.json');
  33. const pkg = JSON.parse(fs.readFileSync(pkgPath,'utf8'));
  34. const [maj, min] = pkg.version.split('.');
  35. pkg.version = `${maj}.${min}.${process.env.VERSION_NUMBER}`;
  36. fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2));
  37. console.log(`🔖 Nightly version set to ${pkg.version}`);
  38. EOF
  39. - name: Build VSIX
  40. run: pnpm vsix:nightly # Produces bin/roo-code-nightly-0.0.[count].vsix
  41. - name: Publish to VS Code Marketplace
  42. env:
  43. VSCE_PAT: ${{ secrets.VSCE_PAT }}
  44. run: npx vsce publish --packagePath "bin/$(/bin/ls bin | head -n1)"
  45. - name: Publish to Open VSX Registry
  46. env:
  47. OVSX_PAT: ${{ secrets.OVSX_PAT }}
  48. run: npx ovsx publish "bin/$(ls bin | head -n1)"