mirror of
https://github.com/enso-org/enso.git
synced 2024-12-25 08:43:34 +03:00
89 lines
2.7 KiB
YAML
89 lines
2.7 KiB
YAML
# This is the new, in progress, Build Workflow for the Enso Engine.
|
|
|
|
name: Engine CI (new)
|
|
|
|
on:
|
|
push:
|
|
branches: [develop, "release/*"]
|
|
pull_request:
|
|
branches: ["*"]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
# Engine builds are slow and our runners limited in capacity. Thus we cancel any workflow runs for older commits
|
|
# on this branch.
|
|
cancel:
|
|
name: Cancel previous runs
|
|
runs-on:
|
|
# We can run pretty much on any runner. The label below is the one present everywhere.
|
|
- X64
|
|
steps:
|
|
- name: Cancel Previous Runs
|
|
uses: styfle/cancel-workflow-action@0.9.1
|
|
with:
|
|
access_token: ${{ github.token }}
|
|
|
|
test_and_publish:
|
|
name: Engine
|
|
runs-on:
|
|
- ${{ matrix.os }}
|
|
- self-hosted
|
|
- engine
|
|
timeout-minutes: 90
|
|
strategy:
|
|
matrix:
|
|
# The macOS support is not yet done. For now, the GitHub-hosted runner
|
|
# in the old workflow should be relied upon.
|
|
os: [Windows, Linux]
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
clean: false
|
|
path: ci-build
|
|
ref: deployed
|
|
repository: enso-org/ci-build
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
path: enso
|
|
- run: cargo run --release --bin enso-build -- ${{ github.workspace }}/enso build
|
|
working-directory: ${{ github.workspace }}/ci-build
|
|
|
|
#####################
|
|
# PUBLISH ARTIFACTS #
|
|
#####################
|
|
- name: Publish the Engine Distribution Artifact
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: ${{ env.ENGINE_DIST_NAME }}
|
|
# Irregular, engine is pre-zipped to avoid long paths issues of nodejs.
|
|
path: ${{ env.ENGINE_DIST_ARCHIVE }}
|
|
- name: Publish the Launcher
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: ${{ env.LAUNCHER_DIST_NAME }}
|
|
path: ${{ env.LAUNCHER_DIST_ROOT }}
|
|
- name: Publish the Project Manager
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: ${{ env.PROJECTMANAGER_DIST_NAME }}
|
|
path: ${{ env.PROJECTMANAGER_DIST_ROOT }}
|
|
- name: Publish the FlatBuffers Schemas
|
|
if: runner.os == 'Linux'
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Engine Protocol FlatBuffers Schemas
|
|
path: ${{ env.TARGET_DIR }}/fbs-upload/fbs-schema.zip
|
|
- name: Publish the Parser JS Bundle
|
|
if: runner.os == 'Linux'
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Parser JS Bundle
|
|
path: ${{ env.TARGET_DIR }}/scala-parser.js
|
|
- name: Publish the Manifest
|
|
if: runner.os == 'Linux'
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: manifest
|
|
path: ${{ env.ENGINE_DIST_DIR }}/manifest.yaml
|