diff --git a/.github/workflows/publish-dev.yml b/.github/workflows/publish-dev.yml new file mode 100644 index 0000000..859d23d --- /dev/null +++ b/.github/workflows/publish-dev.yml @@ -0,0 +1,91 @@ +name: Publish package to GitHub Packages +on: + push: + branches: + - main + release: + types: [published] + # FIXME workflow_dispatch should not be needed + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + publish: + # Forbid manual execution on non-main branches + if: github.ref_name == 'main' + runs-on: ubuntu-latest + permissions: + contents: write + packages: write + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - + uses: actions/checkout@v4 + - + # Setup .npmrc file to publish to GitHub Packages + uses: actions/setup-node@v3 + with: + node-version: '20.x' + registry-url: 'https://npm.pkg.github.com' + # Defaults to the user or organization that owns the workflow file + scope: '@datalayer' + - + run: | + corepack enable + corepack use yarn@3.5.0 + + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT + + - uses: actions/cache@v3 + id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/package.json') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - name: Setup .yarnrc.yml + run: | + yarn config set npmScopes.datalayer.npmRegistryServer "https://npm.pkg.github.com" + yarn config set npmScopes.datalayer.npmAlwaysAuth true + yarn config set npmScopes.datalayer.npmAuthToken $NODE_AUTH_TOKEN + - + run: | + yarn install + yarn run build + - + if: github.event_name == 'push' + # Bump the version + run: | + npm version --preid dev --no-git-tag-version prerelease + + git config --global user.name "github-actions[bot]" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git commit -a -m "Bump dev version" + - + run: | + npm publish --access public --tag next + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - + if: github.event_name == 'push' + # Push version bump + run: | + git push + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Keep only the 3 latest pre releases + - uses: actions/delete-package-versions@v4 + with: + package-name: 'primer-addons' + package-type: 'npm' + min-versions-to-keep: 3 + delete-only-pre-release-versions: "true"