diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..53973c5 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,65 @@ +name: NPM Publish + +on: + push: + branches: + - main + +jobs: + publish: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Detect package manager + id: detect-package-manager + run: | + if [ -f "${{ github.workspace }}/yarn.lock" ]; then + echo "manager=yarn" >> $GITHUB_OUTPUT + echo "command=install" >> $GITHUB_OUTPUT + echo "runner=yarn" >> $GITHUB_OUTPUT + exit 0 + elif [ -f "${{ github.workspace }}/package.json" ]; then + echo "manager=npm" >> $GITHUB_OUTPUT + echo "command=ci" >> $GITHUB_OUTPUT + echo "runner=npx --no-install" >> $GITHUB_OUTPUT + exit 0 + else + echo "Unable to determine package manager" + exit 1 + fi + - name: Setup Node + uses: actions/setup-node@v2 + with: + node-version: "20" + registry-url: https://registry.npmjs.org/ + + - name: Extract commit message + id: extract_message + run: | + COMMIT_MESSAGE=$(git log -1 --pretty=%B) + echo "commit-message=${COMMIT_MESSAGE}" >> $GITHUB_ENV + + - name: Check Filigran-icon + if: startsWith(env.commit-message, '[filigran-icon][version]') + run: echo "package=filigran-icon" >> $GITHUB_ENV + + - name: Check Filigran-ui + if: startsWith(env.commit-message, '[filigran-ui][version]') + run: echo "package=filigran-ui" >> $GITHUB_ENV + + - name: Install dependencies + if: env.package != '' + run: yarn install && npm install rimraf --global + + - name: Publish Filigran UI + if: env.package == 'filigran-ui' + run: yarn publish:filigran-ui + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Publish Filigran Icon + if: env.package == 'filigran-icon' + run: yarn publish:filigran-icon + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/package-lock.json b/package-lock.json index 2c5e3d4..ac52c37 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12443,7 +12443,7 @@ } }, "packages/filigran-icon": { - "version": "0.5.0", + "version": "0.5.1", "license": "MIT", "devDependencies": { "@svgr/cli": "8.1.0", diff --git a/package.json b/package.json index 840c92d..d0d8833 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,11 @@ "scripts": { "build": "npm run build --workspaces --if-present", "build:filigran-website": "npm run build -w filigran-website", - "dev": "npm run dev -w filigran-website" + "build:filigran-icon": "npm run build:all -w filigran-icon", + "build:filigran-ui": "npm run build -w filigran-ui", + "dev": "npm run dev -w filigran-website", + "publish:filigran-icon": "yarn build --workspace packages/filigran-icon && npm publish --provenance --access public --workspace packages/filigran-icon", + "publish:filigran-ui": "yarn build --workspace packages/filigran-ui && npm publish --provenance --access public --workspace packages/filigran-ui" }, "private": true, "keywords": [], diff --git a/packages/filigran-icon/package.json b/packages/filigran-icon/package.json index 5cebe89..8c4a9a9 100644 --- a/packages/filigran-icon/package.json +++ b/packages/filigran-icon/package.json @@ -1,6 +1,6 @@ { "name": "filigran-icon", - "version": "0.5.0", + "version": "0.5.1", "description": "Filigran icon", "main": "./dist/index.js", "module": "./dist/index.mjs", @@ -27,7 +27,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/FiligranHQ/filigran-ui/tree/main/packages/filigran-icon" + "url": "git+https://github.com/FiligranHQ/filigran-ui.git#main" }, "files": [ "dist"