From 4238a3bf22180bfa80396f61ab572e6e62dba2a5 Mon Sep 17 00:00:00 2001 From: hiento09 <136591877+hiento09@users.noreply.github.com> Date: Mon, 16 Dec 2024 12:58:12 +0700 Subject: [PATCH] feat: add cicd for janhq/joi (#4270) Co-authored-by: Hien To --- .github/workflows/publish-npm-joi.yml | 53 +++++++++++++++++++++++++++ joi/package.json | 1 - 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/publish-npm-joi.yml diff --git a/.github/workflows/publish-npm-joi.yml b/.github/workflows/publish-npm-joi.yml new file mode 100644 index 000000000..c943468d8 --- /dev/null +++ b/.github/workflows/publish-npm-joi.yml @@ -0,0 +1,53 @@ +name: Publish plugin models Package to npmjs +on: + push: + tags: ["v[0-9]+.[0-9]+.[0-9]+-joi"] + paths: ["joi/**"] + pull_request: + paths: ["joi/**"] +jobs: + build-and-publish-plugins: + environment: production + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: "0" + token: ${{ secrets.PAT_SERVICE_ACCOUNT }} + + - name: Install jq + uses: dcarbone/install-jq-action@v2.0.1 + + - name: Extract tag name without v prefix + id: get_version + run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV && echo "::set-output name=version::${GITHUB_REF#refs/tags/v}" + env: + GITHUB_REF: ${{ github.ref }} + + - name: "Get Semantic Version from tag" + if: github.event_name == 'push' + run: | + # Get the tag from the event + tag=${GITHUB_REF#refs/tags/v} + # remove the -joi suffix + new_version=$(echo $tag | sed -n 's/-joi//p') + echo $new_version + # Replace the old version with the new version in package.json + jq --arg version "$new_version" '.version = $version' joi/package.json > /tmp/package.json && mv /tmp/package.json joi/package.json + + # Print the new version + echo "Updated package.json version to: $new_version" + cat joi/package.json + + # Setup .npmrc file to publish to npm + - uses: actions/setup-node@v3 + with: + node-version: "20.x" + registry-url: "https://registry.npmjs.org" + + - run: cd joi && yarn install && yarn build + + - run: cd joi && yarn publish --access public + if: github.event_name == 'push' + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/joi/package.json b/joi/package.json index 576c33d72..8de32f820 100644 --- a/joi/package.json +++ b/joi/package.json @@ -5,7 +5,6 @@ "module": "dist/esm/index.js", "types": "dist/index.d.ts", "description": "A collection of UI component", - "private": true, "files": [ "dist" ],