Skip to content

update release-and-publish workflow #1

update release-and-publish workflow

update release-and-publish workflow #1

name: npm-publish
on:
push:
branches:
- master
- dev
jobs:
npm-publish:
name: npm-publish
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18.16.0
- name: Install dependencies
run: |
npm ci
npm run build-ci
zip --junk-paths colyseus-js-client dist/*
- id: check
uses: EndBug/version-check@v2
with:
file-name: package.json
diff-search: true
- name: Publish package on NPM 📦
if: steps.check.outputs.changed == 'true'
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Create Release
id: create_release
if: steps.check.outputs.changed == 'true'
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.publish.outputs.tag_name }}
release_name: ${{ steps.publish.outputs.tag_name }}
draft: false
prerelease: ${{ steps.publish.outputs.is_tagged_release }}
- name: Upload release asset
if: steps.publish.outputs.has_published # create release only if publish to NPM has succeeded
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
asset_path: ./colyseus-js-client.zip
asset_name: colyseus-js-client.zip
asset_content_type: application/zip