Skip to content

chore: dual publish #34

chore: dual publish

chore: dual publish #34

name: Publish to NPM & Brew

Check failure on line 1 in .github/workflows/publish.reusable.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/publish.reusable.yml

Invalid workflow file

(Line: 45, Col: 13): The identifier 'generate-packages' may not be used more than once within the same scope.
on:
workflow_call:
inputs:
release-tag:
type: string
required: true
is-prerelease:
type: string
required: true
jobs:
publish:
name: Publish All the Things
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps:
- uses: actions/checkout@v4
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: lts/*
registry-url: "https://registry.npmjs.org"
- name: Verify `jq` is installed
run: |
if ! jq --version 2>/dev/null; then
echo "jq not installed, required for extracting package names."
exit 1
fi
- name: Generate Packages (deprecated)
id: generate-packages
run: node packages/@postgres-language-server/cli/scripts/generate-packages.mjs
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_TAG: ${{ inputs.release-tag }}
PRERELEASE: ${{ inputs.is-prerelease }}
- name: Generate Packages
id: generate-packages
run: node packages/@postgres-language-server/cli/scripts/generate-packages.mjs
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_TAG: ${{ inputs.release-tag }}
PRERELEASE: ${{ inputs.is-prerelease }}
- name: Publish npm packages as nightly (deprecated)
if: inputs.is-prerelease == 'true'
run: |
for package in packages/@postgrestools/*; do
npm publish "$package" --tag nightly --access public --provenance
done
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} #
- name: Publish npm packages as nightly (deprecated)
if: inputs.is-prerelease == 'true'
run: |
for package in packages/@postgres-language-server/*; do
npm publish "$package" --tag nightly --access public --provenance
done
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} #
- name: Publish npm packages as latest (deprecated)
if: inputs.is-prerelease != 'true'
run: |
for package in packages/@postgrestools/*; do
version="${{ inputs.release-tag }}"
npm_package_name=$(jq -r ".name" "$package/package.json")
if npm view "$npm_package_name@$version" version 2>/dev/null; then
echo "Package $npm_package_name@$version already exists, skipping..."
else
echo "Publishing $npm_package_name@$version..."
npm publish "$package" --tag latest --access public --provenance
fi
done
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish npm packages as latest
if: inputs.is-prerelease != 'true'
run: |
for package in packages/@postgres-language-server/*; do
version="${{ inputs.release-tag }}"
npm_package_name=$(jq -r ".name" "$package/package.json")
if npm view "$npm_package_name@$version" version 2>/dev/null; then
echo "Package $npm_package_name@$version already exists, skipping..."
else
echo "Publishing $npm_package_name@$version..."
npm publish "$package" --tag latest --access public --provenance
fi
done
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}