name: Plugin Core on: push: branches: - main paths: - "core/**" - ".github/workflows/jan-plugin-core.yml" - "!core/package.json" pull_request: branches: - main paths: - "core/**" - ".github/workflows/jan-plugin-core.yml" - "!core/package.json" jobs: build-and-publish-plugins: runs-on: ubuntu-latest environment: production 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: "Auto Increase package Version" run: | # Extract current version current_version=$(jq -r '.version' core/package.json) # Break the version into its components major_version=$(echo $current_version | cut -d "." -f 1) minor_version=$(echo $current_version | cut -d "." -f 2) patch_version=$(echo $current_version | cut -d "." -f 3) # Increment the patch version by one new_patch_version=$((patch_version+1)) # Construct the new version new_version="$major_version.$minor_version.$new_patch_version" # Replace the old version with the new version in package.json jq --arg version "$new_version" '.version = $version' core/package.json > /tmp/package.json && mv /tmp/package.json core/package.json # Print the new version echo "Updated package.json version to: $new_version" # Setup .npmrc file to publish to npm - uses: actions/setup-node@v3 with: node-version: "20.x" registry-url: "https://registry.npmjs.org" - run: npm install && npm run build working-directory: ./core - run: npm publish --access public if: github.event_name == 'push' && github.event.pull_request.head.repo.full_name != github.repository env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} working-directory: ./core - name: "Commit new version to main and create tag" if: github.event_name == 'push' && github.event.pull_request.head.repo.full_name != github.repository run: | version=$(jq -r '.version' core/package.json) git config --global user.email "service@jan.ai" git config --global user.name "Service Account" git add core/package.json git commit -m "${GITHUB_REPOSITORY}: Update tag build $version" git -c http.extraheader="AUTHORIZATION: bearer ${{ secrets.PAT_SERVICE_ACCOUNT }}" push origin HEAD:main git tag -a core-$version -m "${GITHUB_REPOSITORY}: Update tag build $version for core" git -c http.extraheader="AUTHORIZATION: bearer ${{ secrets.PAT_SERVICE_ACCOUNT }}" push origin core-$version