is-unpublished
v0.3.4
Published
Determine if the current version of a package is unpublished
Downloads
1
Readme
A scripting tool for CI environments to determine if your package needs to be published.
npm install -g is-unpublished
if is-unpublished; then
# Do whatever you need to do to publish your package!
fi
This tool supports the following package formats:
Binary releases
If you don't have the ability to install NPM packages in your environment, you can install a binary release.
$ curl -L https://github.com/rzane/is-unpublished/releases/download/v0.3.3/is-unpublished-`uname -s`-`uname -m` > is-unpublished
$ chmod +x is-unpublished
$ ./is-unpublished --version
0.3.3
Github Action
You can also use this package as a Github action. The action version coincides with the published NPM package version.
Inputs
cwd
The directory your package lives in.
Outputs
name
The name of your package.
version
The current version of your package.
is-unpublished
Indicates that your package hasn't been published yet.
Example usage
Publish to NPM
Make sure to set NPM_TOKEN
in your repo settings.
- name: Setup Node
uses: actions/setup-node@v1
with:
node-version: 12
registry-url: https://registry.npmjs.org
- name: Check
id: check
uses: rzane/[email protected]
- name: Publish
run: yarn install && yarn publish --access public
if: ${{ steps.check.outputs.is-unpublished == 'true' }}
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Release
uses: actions/create-release@v1
if: ${{ steps.check.outputs.is-unpublished == 'true' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ steps.check.outputs.version }}
release_name: v${{ steps.check.outputs.version }}
Publish to RubyGems
Make sure to set RUBYGEMS_TOKEN
in your repo settings.
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
registry-url: https://registry.npmjs.org
- name: Check
id: check
uses: rzane/[email protected]
- name: Publish
if: ${{ steps.check.outputs.is-unpublished == 'true' }}
run: |
mkdir -p $HOME/.gem
touch $HOME/.gem/credentials
chmod 0600 $HOME/.gem/credentials
printf -- "---\n:rubygems_api_key: ${RUBYGEMS_TOKEN}\n" > $HOME/.gem/credentials
gem build *.gemspec
gem push *.gem
env:
RUBYGEMS_TOKEN: ${{ secrets.RUBYGEMS_TOKEN }}
- name: Release
if: ${{ steps.check.outputs.is-unpublished == 'true' }}
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ steps.check.outputs.version }}
release_name: v${{ steps.check.outputs.version }}