-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2 from rsksmart/ca-publish-package
Updated project for publication
- Loading branch information
Showing
2 changed files
with
80 additions
and
2 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
name: Deploy library on NPM | ||
|
||
on: | ||
release: | ||
types: [published] | ||
|
||
jobs: | ||
publish: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: "Check file existence" | ||
id: check_files | ||
uses: andstor/file-existence-action@v3 | ||
with: | ||
files: "package.json, README.md" | ||
|
||
- name: File exists | ||
if: steps.check_files.outputs.files_exists != 'true' | ||
# Only runs if all of the files exists | ||
run: exit 1 | ||
|
||
- name: Get package.json package name and match with repository name | ||
run: | | ||
echo PACKAGE_NAME=$(cat package.json | jq .name | cut -f2 -d"\"" | cut -f2 -d"@") >> $GITHUB_OUTPUT | ||
echo PACKAGE_VERSION="refs/tags/v"$(cat package.json | jq .version | cut -f2 -d"\"") >> $GITHUB_OUTPUT | ||
echo PACKAGE_REPOSITORY=$(cat package.json | jq .repository | cut -f2 -d"\"" | sed 's/:/\//' | sed 's/@/:\/\//') >> $GITHUB_OUTPUT | ||
id: get_package_info | ||
|
||
- name: Check if package_name matches with repository name | ||
if: github.repository != steps.get_package_info.outputs.PACKAGE_NAME | ||
# Fail if package name not properly configured | ||
run: exit 1 | ||
|
||
- name: Check if package version matches with tag | ||
if: github.ref != steps.get_package_info.outputs.PACKAGE_VERSION | ||
# Fail if package version not properly setted | ||
run: exit 1 | ||
|
||
- name: Check if package repository matches with repository | ||
if: github.repositoryUrl != steps.get_package_info.outputs.PACKAGE_REPOSITORY | ||
# Fail if package repository doesn't match with repository | ||
run: exit 1 | ||
|
||
- name: Push package to npmjs.com | ||
uses: actions/setup-node@v1 | ||
with: | ||
node-version: 20 | ||
registry-url: https://registry.npmjs.org/ | ||
|
||
- name: Install dependencies | ||
run: npm install | ||
|
||
- name: Pre upload validation | ||
id: pack | ||
run: | | ||
npm pack --dry-run >> output 2>&1 | ||
echo PRE_UPLOAD_HASH=$(cat output| grep shasum | cut -f4 -d" ") >> $GITHUB_OUTPUT | ||
- name: Upload package | ||
run: npm publish --access public | ||
env: | ||
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} | ||
|
||
- name: Post upload validation | ||
id: unpack | ||
run: | | ||
PACKAGE_NAME=$(cat package.json | jq .name | cut -f2 -d"\"")@$(cat package.json | jq .version | cut -f2 -d"\"") | ||
echo POST_UPLOAD_HASH=$(npm view $PACKAGE_NAME) >> $GITHUB_OUTPUT | ||
- name: Pre and Post Upload validation | ||
if: steps.pack.outputs.PRE_UPLOAD_HASH != steps.unpack.outputs.POST_UPLOAD_HASH | ||
# Fail if package hashes doesn't match | ||
run: exit 1 |
This file contains 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