fix: GitHub Publish script (#1016) #487
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release (main) | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
bundler: | |
name: Build bundler | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
steps: | |
- name: Setup | Clone codesandbox-client | |
uses: actions/checkout@v2 | |
with: | |
repository: codesandbox/codesandbox-client | |
- name: Setup | Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: "16.0.0" | |
- name: Install dependencies and cache | |
uses: bahmutov/npm-install@v1 | |
with: | |
useLockFile: true | |
- name: Prepare | Build dependencies | |
run: yarn build:deps | |
- name: Prepare | Build Sandpack bundler | |
run: yarn build:sandpack | |
- name: Archive bundler artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: bundler | |
path: www/**/*.* | |
publish: | |
name: Publish | |
timeout-minutes: 20 | |
runs-on: ubuntu-latest | |
needs: [bundler] | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- name: Setup | Checkout | |
uses: actions/checkout@v2 | |
with: | |
# pulls all commits (needed for lerna / semantic release to correctly version) | |
fetch-depth: "0" | |
- name: Setup | Authenticate with Registry | |
run: echo //registry.npmjs.org/:_authToken=${NPM_TOKEN} > .npmrc | |
env: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
- name: Setup | Ensure registry access | |
run: npm whoami | |
- name: Setup | Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version-file: .nvmrc | |
- name: Setup | Configure git user | |
run: | | |
git config --global user.name "${{ github.actor }}" | |
git config --global user.email "${{ github.actor }}@users.noreply.github.com" | |
- name: Install dependencies and cache | |
uses: bahmutov/npm-install@v1 | |
with: | |
useLockFile: true | |
- name: Prepare | Download artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: bundler | |
path: bundler | |
- name: Prepare | Lerna Version | |
run: yarn lerna version --yes --no-private | |
- name: Prepare | Build | |
run: | | |
yarn workspace @codesandbox/sandpack-client build:publish | |
yarn workspace @codesandbox/sandpack-react build:publish | |
yarn workspace @codesandbox/sandpack-themes build:publish | |
- name: Release | Lerna Publish | |
run: lerna publish from-package --yes | |
publish-gh-package: | |
name: Publish to GitHub Packages | |
timeout-minutes: 20 | |
runs-on: ubuntu-latest | |
needs: [bundler] | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- name: Setup | Checkout | |
uses: actions/checkout@v2 | |
with: | |
# pulls all commits (needed for lerna / semantic release to correctly version) | |
fetch-depth: "0" | |
- name: Setup GitHub npm registry | |
run: echo -e "@codesandbox:registry=https://npm.pkg.github.com\n//npm.pkg.github.com/:_authToken=${GH_TOKEN}" > .npmrc | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Setup | Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version-file: .nvmrc | |
- name: Install dependencies and cache | |
uses: bahmutov/npm-install@v1 | |
with: | |
useLockFile: true | |
- name: Prepare | Download artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: bundler | |
path: bundler | |
- name: Prepare | Lerna Version | |
run: yarn lerna version --yes --no-private | |
- name: Prepare | Build | |
run: | | |
yarn workspace @codesandbox/sandpack-client build:publish | |
yarn workspace @codesandbox/sandpack-react build:publish | |
yarn workspace @codesandbox/sandpack-themes build:publish | |
- name: Release | Publish | |
run: | | |
cd sandpack-client && npm publish --registry=https://npm.pkg.github.com && | |
cd ../sandpack-react && npm publish --registry=https://npm.pkg.github.com && | |
cd ../sandpack-themes && npm publish --registry=https://npm.pkg.github.com |