From 48ce2531c6e1443d538ae5cf6007545b9f1b36ce Mon Sep 17 00:00:00 2001 From: Jan Stastny Date: Wed, 22 Mar 2023 09:36:58 +0100 Subject: [PATCH] Github action releasing the package to github --- .github/workflows/publish.yaml | 48 ++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/workflows/publish.yaml diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml new file mode 100644 index 00000000..dcd07316 --- /dev/null +++ b/.github/workflows/publish.yaml @@ -0,0 +1,48 @@ +name: Publish +on: + push: + tags: + # This is triggered when new tag starting with v is pushed to the repository. + - v** + +jobs: + publish: + name: Publish + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Read the tag name + run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV + + - uses: actions/setup-node@v3 + with: + node-version: 16.x + cache: 'yarn' + + - name: Set package version from git tag + run: | + GIT_TAG=${{ github.ref_name }} + VERSION="${GIT_TAG#v}" + yarn workspace sql-language-server version --new-version ${VERSION} --no-git-tag-version + + - run: yarn install + - run: yarn npm:prepublish + + # We rename the package dynamically to include the @deepnote namespace + # in the build script instead of renaming it in the package.json + # because other packages depend on it and we want to keep the name the same for tests to pass. + - name: Rename the package + run: npm pkg set name=@deepnote/sql-language-server --workspace packages/server + + - name: Configure github packages npm repository + run: | + echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" > ~/.npmrc + echo "@deepnote:registry=https://npm.pkg.github.com" >> ~/.npmrc + + # We use `npm publish` instead of `yarn publish` because yarn publish + # checks if the repository is clean and fails if it's not. This is complicated for us, given we rename + # the pacakge dynamically and we don't want to commit the changes to the package.json. + - name: Publish the server package + run: | + npm publish --workspace packages/server