blob: 96a27852298e3943fc625be7e3a6f4ce917611ae [file] [log] [blame]
name: Create draft release
on:
push:
branches: ["**-prerelease"]
jobs:
create-release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
# This bash script returns the `tag` name for the release. Will match "/refs/[tags/heads]/[tag]-prerelease"
- name: Parse `tag`
id: prerelease-tag
shell: bash
run: |
echo ::set-output name=tag::$(node -e "console.log('${{ github.ref }}'.match(/^.*\/(.+)-prerelease$/)[1])")
# This bash script returns 0 if equal and 1 otherwise. Will fail if versions are not equal.
- name: Check `tag` against `lerna.json.version`
shell: bash
run: |
[ "${{ steps.prerelease-tag.outputs.tag }}" == "$(node -e "console.log(require('./lerna.json').version);")" ]
- name: Create Draft Release
id: create_release
uses: actions/create-release@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.prerelease-tag.outputs.tag }}
release_name: ${{ steps.prerelease-tag.outputs.tag }} (alpha)
draft: true
prerelease: true
- name: Generate release.json
env:
env-to-json__upload_url: ${{ steps.create_release.outputs.upload_url }}
env-to-json__html_url: ${{ steps.create_release.outputs.html_url }}
env-to-json__id: ${{ steps.create_release.outputs.id }}
env-to-json__tag: ${{ steps.prerelease-tag.outputs.tag }}
uses: ./.github/actions/env-to-json
with:
path: release.json
- name: Upload release.json
uses: actions/upload-artifact@v1
with:
name: release.json
path: release.json
prerelease:
needs: create-release
if: github.repository == 'kiegroup/kogito-tooling'
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
node: [12.16.3]
yarn: [1.19.1]
steps:
- uses: actions/checkout@v2
with:
path: kogito-tooling
- name: Download release.json
uses: actions/download-artifact@v1
with:
name: release.json
path: .
- name: Parse and output release.json
id: release_json
uses: ./kogito-tooling/.github/actions/json-to-output
with:
path: release.json
- name: Setup Node
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node }}
- name: Setup Yarn
run: npm install -g yarn@${{ matrix.yarn }}
- name: Start Xvfb (Ubuntu only)
if: matrix.os == 'ubuntu-latest'
run: /usr/bin/Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
- name: Generate download URL for Draft Release
id: release_json_ext
shell: python
run: print('::set-output name=download_url::' + '${{ steps.release_json.outputs.html_url }}'.replace('/tag/', '/download/'));
- name: Build
env:
ROUTER_targetOrigin: "https://kiegroup.github.io"
ROUTER_relativePath: "kogito-online/editors/${{ steps.release_json.outputs.tag }}/"
DOWNLOAD_HUB_linuxUrl: "${{ steps.release_json_ext.outputs.download_url }}/business_modeler_hub_preview_linux_${{ steps.release_json.outputs.tag }}.tar.gz"
DOWNLOAD_HUB_macOsUrl: "${{ steps.release_json_ext.outputs.download_url }}/business_modeler_hub_preview_macos_${{ steps.release_json.outputs.tag }}.zip"
DOWNLOAD_HUB_windowsUrl: "${{ steps.release_json_ext.outputs.download_url }}/business_modeler_hub_preview_windows_${{ steps.release_json.outputs.tag }}.zip"
DISPLAY: ":99.0"
run: cd kogito-tooling && yarn run init && yarn run build:prod && cd -
- name: Upload VSCode Extension (Ubuntu only)
if: matrix.os == 'ubuntu-latest'
id: upload-vscode-extension
uses: actions/upload-release-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.release_json.outputs.upload_url }}
asset_path: ./kogito-tooling/packages/vscode-extension-pack-kogito-kie-editors/dist/vscode_extension_kogito_kie_editors_${{ steps.release_json.outputs.tag }}.vsix
asset_name: vscode_extension_kogito_kie_editors_${{ steps.release_json.outputs.tag }}.vsix
asset_content_type: application/zip
- name: Upload Chrome Extension (Ubuntu only)
if: matrix.os == 'ubuntu-latest'
id: upload-chrome-extension
uses: actions/upload-release-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.release_json.outputs.upload_url }}
asset_path: ./kogito-tooling/packages/chrome-extension-pack-kogito-kie-editors/dist/chrome_extension_kogito_kie_editors_${{ steps.release_json.outputs.tag }}.zip
asset_name: chrome_extension_kogito_kie_editors_${{ steps.release_json.outputs.tag }}.zip
asset_content_type: application/zip
- name: Upload Desktop App for Linux (Ubuntu only)
if: matrix.os == 'ubuntu-latest'
id: upload-desktop-app-linux
uses: actions/upload-release-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.release_json.outputs.upload_url }}
asset_path: ./kogito-tooling/packages/desktop/out/Business Modeler Preview-linux-x64.tar.gz
asset_name: business_modeler_preview_linux_${{ steps.release_json.outputs.tag }}.tar.gz
asset_content_type: application/tar+gzip
- name: Upload Desktop App for macOS (macOS only)
if: matrix.os == 'macos-latest'
id: upload-desktop-app-macos
uses: actions/upload-release-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.release_json.outputs.upload_url }}
asset_path: ./kogito-tooling/packages/desktop/out/Business Modeler Preview-darwin-x64.zip
asset_name: business_modeler_preview_macos_${{ steps.release_json.outputs.tag }}.zip
asset_content_type: application/zip
- run: "Compress-Archive -Path \"kogito-tooling\\packages\\desktop\\out\\Business Modeler Preview-win32-x64\" -DestinationPath \"kogito-tooling\\packages\\desktop\\out\\Business Modeler Preview-win32-x64.zip\""
if: matrix.os == 'windows-latest'
- name: Upload Desktop App for Windows (Windows only)
if: matrix.os == 'windows-latest'
id: upload-desktop-app-windows
uses: actions/upload-release-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.release_json.outputs.upload_url }}
asset_path: "./kogito-tooling/packages/desktop/out/Business Modeler Preview-win32-x64.zip"
asset_name: "business_modeler_preview_windows_${{ steps.release_json.outputs.tag }}.zip"
asset_content_type: application/zip
- name: Upload Hub App for Linux (Ubuntu only)
if: matrix.os == 'ubuntu-latest'
id: upload-hub-app-linux
uses: actions/upload-release-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.release_json.outputs.upload_url }}
asset_path: ./kogito-tooling/packages/hub/out/Business Modeler Hub Preview-linux-x64.tar.gz
asset_name: business_modeler_hub_preview_linux_${{ steps.release_json.outputs.tag }}.tar.gz
asset_content_type: application/tar+gzip
- name: Upload Hub App for macOS (macOS only)
if: matrix.os == 'macos-latest'
id: upload-hub-app-macos
uses: actions/upload-release-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.release_json.outputs.upload_url }}
asset_path: ./kogito-tooling/packages/hub/out/Business Modeler Hub Preview-darwin-x64.zip
asset_name: business_modeler_hub_preview_macos_${{ steps.release_json.outputs.tag }}.zip
asset_content_type: application/zip
- run: "Compress-Archive -Path \"kogito-tooling\\packages\\hub\\out\\Business Modeler Hub Preview-win32-x64\" -DestinationPath \"kogito-tooling\\packages\\hub\\out\\Business Modeler Hub Preview-win32-x64.zip\""
if: matrix.os == 'windows-latest'
- name: Upload Hub App for Windows (Windows only)
if: matrix.os == 'windows-latest'
id: upload-hub-app-windows
uses: actions/upload-release-asset@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.release_json.outputs.upload_url }}
asset_path: "./kogito-tooling/packages/hub/out/Business Modeler Hub Preview-win32-x64.zip"
asset_name: "business_modeler_hub_preview_windows_${{ steps.release_json.outputs.tag }}.zip"
asset_content_type: application/zip
- name: Checkout "kogito-online" (Ubuntu only)
if: matrix.os == 'ubuntu-latest'
uses: actions/checkout@v2
with:
token: ${{ secrets.KOGITO_TOOLING_BOT_TOKEN }}
path: kogito-online
repository: kiegroup/kogito-online
ref: gh-pages
# For this step to work properly, you have to add the owner of KOGITO_TOOLING_BOT_TOKEN as collaborator on 'kogito-online'.
- name: Update "kogito-online" resources (Ubuntu only)
if: matrix.os == 'ubuntu-latest'
env:
KOGITO_ONLINE_CHROME_EXT_DIR: ./editors/${{ steps.release_json.outputs.tag }}
KOGITO_ONLINE_EDITOR_STAGING_DIR: ./online-editor-staging
run: |
cd kogito-online
rm -rf $KOGITO_ONLINE_CHROME_EXT_DIR
mkdir -p $KOGITO_ONLINE_CHROME_EXT_DIR
cp -r ../kogito-tooling/packages/kie-bc-editors-unpacked/bpmn $KOGITO_ONLINE_CHROME_EXT_DIR/
cp -r ../kogito-tooling/packages/kie-bc-editors-unpacked/dmn $KOGITO_ONLINE_CHROME_EXT_DIR/
cp -r ../kogito-tooling/packages/kie-bc-editors-unpacked/scesim $KOGITO_ONLINE_CHROME_EXT_DIR/
cp -r ../kogito-tooling/packages/chrome-extension-pack-kogito-kie-editors/dist/envelope $KOGITO_ONLINE_CHROME_EXT_DIR/
rm -rf $KOGITO_ONLINE_EDITOR_STAGING_DIR
cp -r ../kogito-tooling/packages/online-editor/dist $KOGITO_ONLINE_EDITOR_STAGING_DIR
git config --global user.email "kogito-tooling-bot@gmail.com"
git config --global user.name "Kogito Tooling Bot (kiegroup)"
git add . && git commit -m "${{ steps.release_json.outputs.tag }} resources" || echo "No changes."
git push origin gh-pages
cd -