feat: publish package

This commit is contained in:
Leandro Costa 2025-06-27 12:14:10 -03:00
parent 4ef0a2da9c
commit 55a2649c5e
3 changed files with 95 additions and 1 deletions

View file

@ -5,6 +5,7 @@ inputs:
package_json_path: package_json_path:
description: Path to package.json file description: Path to package.json file
default: package.json default: package.json
required: false
outputs: outputs:
version_changed: version_changed:
description: "Whether the version changed" description: "Whether the version changed"
@ -42,3 +43,4 @@ runs:
fi fi
echo "package_version=$NEW_VERSION" >> "$GITHUB_OUTPUT" echo "package_version=$NEW_VERSION" >> "$GITHUB_OUTPUT"
echo "PACKAGE_VERSION=$NEW_VERSION" >> "$GITHUB_ENV"

View file

@ -0,0 +1,92 @@
name: Publish Package to NPM Repository
description: This action will verify if the package exists on the repository and publish to it if needed
inputs:
npm_token:
description: NPM_TOKEN to access the repository
required: true
git_token:
description: Token to publish packages
required: true
git_username:
description: user name that will hold the packages
required: true
git_url:
description: user name that will hold the packages
required: true
artifact_folder_name:
description: The Artifact to be downloaded
default: dist
required: false
outputs:
version_changed:
description: "Whether the version changed"
value: ${{ steps.check.outputs.version_changed }}
package_version:
description: "Current version from package.json"
value: ${{ steps.check.outputs.package_version }}
runs:
using: composite
steps:
- name: Instalando Dependencias
shell: sh
run: apk add git jq sed
- name: Download Artifact
uses: actions/download-artifact@v3
with:
path: ${{ inputs.artifact_folder_name }}
name: dist
- name: Ajusta nome do pacote
if: github.ref == 'refs/heads/master'
shell: sh
run: sed -i "s/-dev//g" dist/package.json
- name: Lê o nome do pacote
shell: sh
run: |
PACKAGE_NAME=$(jq -r .name dist/package.json)
PACKAGE_VERSION=$(jq -r .version dist/package.json)
echo "Package Name: $PACKAGE_NAME"
echo "Package Version: $PACKAGE_VERSION"
echo "PACKAGE_NAME=$PACKAGE_NAME" >> "$GITHUB_ENV"
echo "PACKAGE_VERSION=$PACKAGE_VERSION" >> "$GITHUB_ENV"
- name: Publish to NPM.js
shell: sh
run: |
cd dist
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
if npm view "${PACKAGE_NAME}@${PACKAGE_VERSION}" > /dev/null 2>&1; then
echo "Package ${PACKAGE_NAME}@${PACKAGE_VERSION} already exists. Skipping publish."
else
echo "Package ${PACKAGE_NAME}@${PACKAGE_VERSION} does not exist. Will publish."
npm publish
fi
cd ..
env:
NPM_TOKEN: ${{ secrets.npm_token }}
- name: Publish to Git Packages
shell: sh
run: |
npm config set registry https://git.lhprovedor.com.br/api/packages/${{ inputs.git_username }}/npm/
npm config set -- '//git.lhprovedor.com.br/api/packages/${{ inputs.git_username }}/npm/:_authToken' "${GIT_TOKEN}"
cd dist
if npm view "${PACKAGE_NAME}@${PACKAGE_VERSION}" > /dev/null 2>&1; then
echo "Package ${PACKAGE_NAME}@${PACKAGE_VERSION} already exists. Skipping publish."
else
echo "Package ${PACKAGE_NAME}@${PACKAGE_VERSION} does not exist. Will publish."
npm publish
fi
cd ..
env:
GIT_TOKEN: ${{ inputs.git_token }}

View file

@ -1,3 +1,3 @@
{ {
"cSpell.words": ["dbupdater", "lhprovedor", "webfactory"] "cSpell.words": ["dbupdater", "lhprovedor", "npmjs", "webfactory"]
} }