From d6169e2d9bffc1f29028deb5441ab1d0a8b87ab5 Mon Sep 17 00:00:00 2001 From: newcat Date: Thu, 2 Nov 2023 00:22:16 +0100 Subject: [PATCH] Add publish workflow --- .github/workflows/publish.yml | 57 +++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..7c8531c9 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,57 @@ +name: Publish + +permissions: + id-token: write + contents: write + +on: + push: + tags: + - * + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Use Node.js 20 + uses: actions/setup-node@v3 + with: + node-version: "20" + - name: Setup Yarn v3 + run: | + corepack enable + corepack prepare yarn@stable --activate + - name: Install dependencies + run: yarn install --immutable + - name: Build + run: yarn run build + - name: Publish + run: | + echo //registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }} > .npmrc + lerna publish from-git --yes + - name: Build docs + run: | + yarn run generate-api-docs + yarn run docs:build + - name: Azure login + uses: azure/login@v1 + with: + client-id: ${{ secrets.AZURE_CLIENT_ID }} + tenant-id: ${{ secrets.AZURE_TENANT_ID }} + subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} + - name: Publish docs + uses: azure/CLI@v1 + with: + inlineScript: | + az storage blob sync --account-name baklavajs -c '$web' -s "./docs/.vuepress/dist/" + - name: Purge CDN endpoint + uses: azure/CLI@v1 + with: + inlineScript: | + az cdn endpoint purge --content-paths "/*" --profile-name "baklavajs" --name "baklavajs" --resource-group "Private" --no-wait + - name: Azure Logout + run: az logout + if: always()