Update README and version to reflect OpenAI provider support (#10) #21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Publish to NPM | |
| on: | |
| push: | |
| branches: | |
| - main | |
| jobs: | |
| check-version: | |
| name: Check if version changed | |
| runs-on: ubuntu-latest | |
| outputs: | |
| changed: ${{ steps.check.outputs.changed }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Check if version is already published | |
| id: check | |
| run: | | |
| CURRENT_VERSION=$(node -p "require('./package.json').version") | |
| PACKAGE_NAME=$(node -p "require('./package.json').name") | |
| echo "package=$PACKAGE_NAME" | |
| echo "version=$CURRENT_VERSION" | |
| if npm view "${PACKAGE_NAME}@${CURRENT_VERSION}" version 2>/dev/null; then | |
| echo "Version $CURRENT_VERSION already published" | |
| echo "changed=false" >> "$GITHUB_OUTPUT" | |
| else | |
| echo "Version $CURRENT_VERSION not yet published" | |
| echo "changed=true" >> "$GITHUB_OUTPUT" | |
| fi | |
| publish: | |
| name: Publish package | |
| runs-on: ubuntu-latest | |
| needs: check-version | |
| if: needs.check-version.outputs.changed == 'true' | |
| permissions: | |
| contents: read | |
| id-token: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| - name: Upgrade npm for OIDC support | |
| run: npm install -g npm@latest | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v1 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install | |
| - name: Validate environment variables | |
| env: | |
| GOOGLE_CLIENT_ID: ${{ secrets.GOOGLE_CLIENT_ID }} | |
| GOOGLE_CLIENT_SECRET: ${{ secrets.GOOGLE_CLIENT_SECRET }} | |
| run: | | |
| if [ -z "$GOOGLE_CLIENT_ID" ]; then | |
| echo "Error: GOOGLE_CLIENT_ID secret is not set." | |
| exit 1 | |
| fi | |
| if [ -z "$GOOGLE_CLIENT_SECRET" ]; then | |
| echo "Error: GOOGLE_CLIENT_SECRET secret is not set." | |
| exit 1 | |
| fi | |
| - name: Build project | |
| env: | |
| GOOGLE_CLIENT_ID: ${{ secrets.GOOGLE_CLIENT_ID }} | |
| GOOGLE_CLIENT_SECRET: ${{ secrets.GOOGLE_CLIENT_SECRET }} | |
| run: | | |
| bun build ./index.ts --outdir ./dist --target bun --minify --sourcemap \ | |
| --define "process.env.GOOGLE_CLIENT_ID=\"$GOOGLE_CLIENT_ID\"" \ | |
| --define "process.env.GOOGLE_CLIENT_SECRET=\"$GOOGLE_CLIENT_SECRET\"" | |
| - name: Publish to NPM | |
| run: | | |
| unset NODE_AUTH_TOKEN | |
| npm publish --access public --provenance |