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