| 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 - |