nightly-publish.yml 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. skip-checkout: 'true'
  20. install-args: '--frozen-lockfile'
  21. - name: Forge numeric Nightly version
  22. id: version
  23. env:
  24. RUN_NUMBER: ${{ github.run_number }}
  25. run: echo "number=$(( 5500 + ${RUN_NUMBER} ))" >> $GITHUB_OUTPUT
  26. - name: Patch package.json version
  27. env:
  28. VERSION_NUMBER: ${{ steps.version.outputs.number }}
  29. run: |
  30. node <<'EOF'
  31. const fs = require('fs');
  32. const path = require('path');
  33. const pkgPath = path.join(__dirname, 'apps', 'vscode-nightly', 'package.nightly.json');
  34. const pkg = JSON.parse(fs.readFileSync(pkgPath,'utf8'));
  35. const [maj, min] = pkg.version.split('.');
  36. pkg.version = `${maj}.${min}.${process.env.VERSION_NUMBER}`;
  37. fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2));
  38. console.log(`🔖 Nightly version set to ${pkg.version}`);
  39. EOF
  40. - name: Build VSIX
  41. run: pnpm vsix:nightly # Produces bin/roo-code-nightly-0.0.[count].vsix
  42. - name: Publish to VS Code Marketplace
  43. env:
  44. VSCE_PAT: ${{ secrets.VSCE_PAT }}
  45. run: npx vsce publish --packagePath "bin/$(/bin/ls bin | head -n1)"
  46. - name: Publish to Open VSX Registry
  47. env:
  48. OVSX_PAT: ${{ secrets.OVSX_PAT }}
  49. run: npx ovsx publish "bin/$(ls bin | head -n1)"