Updating js plugins
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
# This workflow will do a clean install of node dependencies, build the source
|
||||
# code and run tests across different versions of node.
|
||||
#
|
||||
# In case there is a new version in package.json and it's the main branch, it
|
||||
# will also tag and release this version.
|
||||
|
||||
name: Test and Release
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
|
||||
test:
|
||||
name: Test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v2.1.1
|
||||
- name: Checkout Dropzone
|
||||
uses: actions/checkout@v2
|
||||
- run: yarn install
|
||||
- run: yarn test
|
||||
|
||||
# Auto tag when the package.json version has changed. A different job will see
|
||||
# this tag, publish it, and create a release for it.
|
||||
tag:
|
||||
name: Tag if package.json version increased
|
||||
runs-on: ubuntu-latest
|
||||
if: github.ref == 'refs/heads/main'
|
||||
needs: [test]
|
||||
outputs:
|
||||
tagname: ${{ steps.auto_tag.outputs.tagname }}
|
||||
steps:
|
||||
- name: Checkout Dropzone
|
||||
uses: actions/checkout@v2
|
||||
- name: Auto tag
|
||||
id: auto_tag
|
||||
uses: Klemensas/action-autotag@1.2.3
|
||||
env:
|
||||
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
with:
|
||||
tag_prefix: v
|
||||
tag_message: "Please check the changelog for a list of changes"
|
||||
|
||||
|
||||
build:
|
||||
name: Build dist files
|
||||
runs-on: ubuntu-latest
|
||||
if: github.ref == 'refs/heads/main'
|
||||
needs: [test]
|
||||
steps:
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v2.1.1
|
||||
- name: Checkout Dropzone
|
||||
uses: actions/checkout@v2
|
||||
- run: yarn install
|
||||
- name: Read package.json version
|
||||
uses: pchynoweth/action-get-npm-version@1.0.1
|
||||
id: package_version
|
||||
- name: Inject package version into javascript file
|
||||
uses: jacobtomlinson/gha-find-replace@master
|
||||
id: version_replace
|
||||
with:
|
||||
include: "src/dropzone.js"
|
||||
find: "version = \"dev\""
|
||||
replace: "version = \"${{ steps.package_version.outputs.version }}\""
|
||||
- name: Abort if version wasn't replaced
|
||||
if: steps.version_replace.outputs.modifiedFiles != 1
|
||||
run: exit 1
|
||||
- run: yarn build
|
||||
- name: Upload dist folder in case of release
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: dist
|
||||
path: dist
|
||||
|
||||
release:
|
||||
name: Create GitHub release
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build, tag]
|
||||
if: github.ref == 'refs/heads/main' && needs.tag.outputs.tagname != null
|
||||
steps:
|
||||
- name: Checkout Dropzone
|
||||
uses: actions/checkout@v2
|
||||
- name: Download dist folder
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: dist
|
||||
path: dist
|
||||
- name: Compress dist folder
|
||||
run: zip dist -r dist
|
||||
- name: Release
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: "${{ needs.tag.outputs.tagname }}"
|
||||
release_name: "Release ${{ needs.tag.outputs.tagname }}"
|
||||
body: "Please check the [changelog](https://github.com/dropzone/dropzone/blob/${{ github.sha }}/CHANGELOG.md) for a list of changes"
|
||||
draft: false
|
||||
prerelease: false
|
||||
- name: Upload Release Asset
|
||||
id: upload-release-asset
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./dist.zip
|
||||
asset_name: dist.zip
|
||||
asset_content_type: application/zip
|
||||
|
||||
|
||||
npm-publish:
|
||||
name: Publish new version to npm
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build,release]
|
||||
steps:
|
||||
- name: Checkout Dropzone
|
||||
uses: actions/checkout@v2
|
||||
- name: Download dist folder
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: dist
|
||||
path: dist
|
||||
- name: Publish
|
||||
uses: JS-DevTools/npm-publish@v1
|
||||
with:
|
||||
token: ${{ secrets.NPM_TOKEN }}
|
||||
|
||||
trigger-remote-releases:
|
||||
name: Dispatch the "new-release" event to packagist and bower repo
|
||||
runs-on: ubuntu-latest
|
||||
needs: [tag,release]
|
||||
steps:
|
||||
- name: Dispatch "new-release" event to the dropzone-packagist repo.
|
||||
uses: peter-evans/repository-dispatch@v1
|
||||
with:
|
||||
token: ${{ secrets.DRONE_PAT }}
|
||||
repository: dropzone/dropzone-packagist
|
||||
event-type: new-release
|
||||
client-payload: '{"releaseTag": "${{ needs.tag.outputs.tagname }}"}'
|
||||
- name: Dispatch "new-release" event to the dropzone-bower repo.
|
||||
uses: peter-evans/repository-dispatch@v1
|
||||
with:
|
||||
token: ${{ secrets.DRONE_PAT }}
|
||||
repository: dropzone/dropzone-bower
|
||||
event-type: new-release
|
||||
client-payload: '{"releaseTag": "${{ needs.tag.outputs.tagname }}"}'
|
||||
|
||||
Reference in New Issue
Block a user