2020-06-16 19:18:11 +03:00
|
|
|
name: Engine CI
|
2020-03-24 15:52:02 +03:00
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
2021-10-30 18:35:45 +03:00
|
|
|
branches: [develop, "release/*"]
|
2020-03-24 15:52:02 +03:00
|
|
|
pull_request:
|
2020-07-21 15:59:40 +03:00
|
|
|
branches: ["*"]
|
2020-03-24 15:52:02 +03:00
|
|
|
|
|
|
|
env:
|
2020-07-10 13:57:42 +03:00
|
|
|
# Please ensure that this is in sync with graalVersion in build.sbt
|
2021-05-14 15:08:39 +03:00
|
|
|
graalVersion: 21.1.0
|
2020-07-10 13:57:42 +03:00
|
|
|
# Please ensure that this is in sync with javaVersion in build.sbt
|
2020-07-22 20:28:03 +03:00
|
|
|
javaVersion: 11
|
2020-03-24 15:52:02 +03:00
|
|
|
# Please ensure that this is in sync with project/build.properties
|
2021-05-14 15:08:39 +03:00
|
|
|
sbtVersion: 1.5.2
|
2020-08-07 12:18:09 +03:00
|
|
|
# Please ensure that this is in sync with rustVersion in build.sbt
|
2021-11-10 16:36:08 +03:00
|
|
|
rustToolchain: nightly-2021-11-08
|
2021-07-22 09:24:06 +03:00
|
|
|
# Some moderately recent version of Node.JS is needed to run the library download tests.
|
2021-08-09 17:00:04 +03:00
|
|
|
nodeVersion: 14.17.2
|
2020-03-24 15:52:02 +03:00
|
|
|
|
|
|
|
jobs:
|
2020-10-06 18:45:02 +03:00
|
|
|
test_and_publish:
|
|
|
|
name: Build and Test
|
2020-03-24 15:52:02 +03:00
|
|
|
runs-on: ${{ matrix.os }}
|
2021-09-24 14:24:44 +03:00
|
|
|
timeout-minutes: 120
|
2020-03-24 15:52:02 +03:00
|
|
|
strategy:
|
|
|
|
matrix:
|
2021-03-04 19:59:05 +03:00
|
|
|
os: [macOS-latest, ubuntu-18.04, windows-latest]
|
2020-03-24 15:52:02 +03:00
|
|
|
fail-fast: false
|
|
|
|
steps:
|
2020-05-15 11:07:58 +03:00
|
|
|
- uses: actions/checkout@v2
|
2021-06-18 17:39:45 +03:00
|
|
|
- name: Configure Pagefile (Windows)
|
|
|
|
if: runner.os == 'Windows'
|
|
|
|
uses: al-cheb/configure-pagefile-action@v1.2
|
|
|
|
with:
|
|
|
|
minimum-size: 16GB
|
|
|
|
maximum-size: 16GB
|
|
|
|
disk-root: "C:"
|
2020-07-22 20:28:03 +03:00
|
|
|
- name: Enable Developer Command Prompt (Windows)
|
2021-06-15 12:13:22 +03:00
|
|
|
uses: ilammy/msvc-dev-cmd@v1.9.0
|
2020-10-27 14:45:10 +03:00
|
|
|
- name: Setup Go
|
|
|
|
uses: actions/setup-go@v2
|
2020-09-22 11:46:29 +03:00
|
|
|
- name: Disable TCP/UDP Offloading (macOS)
|
|
|
|
if: runner.os == 'macOS'
|
|
|
|
shell: bash
|
|
|
|
run: |
|
|
|
|
sudo sysctl -w net.link.generic.system.hwcksum_tx=0
|
|
|
|
sudo sysctl -w net.link.generic.system.hwcksum_rx=0
|
2020-09-07 14:24:34 +03:00
|
|
|
- name: Disable TCP/UDP Offloading (Linux)
|
|
|
|
if: runner.os == 'Linux'
|
|
|
|
shell: bash
|
|
|
|
run: sudo ethtool -K eth0 tx off rx off
|
|
|
|
- name: Disable TCP/UDP Offloading (Windows)
|
|
|
|
if: runner.os == 'Windows'
|
|
|
|
shell: powershell
|
|
|
|
run: >
|
|
|
|
Disable-NetAdapterChecksumOffload -Name * -TcpIPv4 -UdpIPv4 -TcpIPv6
|
|
|
|
-UdpIPv6
|
2020-08-03 17:00:12 +03:00
|
|
|
- name: Install Rust
|
2020-10-21 17:48:05 +03:00
|
|
|
uses: actions-rs/toolchain@v1.0.6
|
2020-08-03 17:00:12 +03:00
|
|
|
with:
|
|
|
|
toolchain: ${{ env.rustToolchain }}
|
|
|
|
override: true
|
2020-05-15 11:07:58 +03:00
|
|
|
- name: Setup conda
|
2020-10-21 17:48:05 +03:00
|
|
|
uses: s-weigand/setup-conda@v1.0.5
|
2020-05-15 11:07:58 +03:00
|
|
|
with:
|
|
|
|
update-conda: false
|
|
|
|
conda-channels: anaconda, conda-forge
|
|
|
|
- name: Setup Conda Environment on Windows
|
|
|
|
if: runner.os == 'Windows'
|
|
|
|
run: |
|
|
|
|
conda create --name enso
|
|
|
|
conda init powershell
|
|
|
|
- name: Activate Conda Environment on Windows
|
|
|
|
if: runner.os == 'Windows'
|
|
|
|
run: conda activate enso
|
|
|
|
- name: Install FlatBuffers Compiler
|
|
|
|
run: conda install --freeze-installed flatbuffers=1.12.0
|
|
|
|
- name: Setup GraalVM Environment
|
2020-07-22 20:28:03 +03:00
|
|
|
uses: ayltai/setup-graalvm@v1
|
2020-05-15 11:07:58 +03:00
|
|
|
with:
|
2020-07-22 20:28:03 +03:00
|
|
|
graalvm-version: ${{ env.graalVersion }}
|
|
|
|
java-version: ${{ env.javaVersion }}
|
|
|
|
native-image: true
|
2021-07-22 09:24:06 +03:00
|
|
|
- name: Install Node
|
|
|
|
uses: actions/setup-node@v1
|
|
|
|
with:
|
|
|
|
node-version: ${{ env.nodeVersion }}
|
|
|
|
- name: Install Dependencies of the Simple Library Server
|
|
|
|
shell: bash
|
|
|
|
working-directory: tools/simple-library-server
|
|
|
|
run: |
|
|
|
|
npm install
|
2021-08-02 19:01:15 +03:00
|
|
|
- name: Download Project Template Files
|
|
|
|
shell: bash
|
|
|
|
run: |
|
|
|
|
curl --retry 4 --retry-connrefused -fsSL -o lib/scala/pkg/src/main/resources/orders/data/store_data.xlsx https://github.com/enso-org/project-templates/raw/main/Orders/data/store_data.xlsx
|
|
|
|
curl --retry 4 --retry-connrefused -fsSL -o lib/scala/pkg/src/main/resources/orders/src/Main.enso https://github.com/enso-org/project-templates/raw/main/Orders/src/Main.enso
|
|
|
|
curl --retry 4 --retry-connrefused -fsSL -o lib/scala/pkg/src/main/resources/restaurants/data/la_districts.csv https://github.com/enso-org/project-templates/raw/main/Restaurants/data/la_districts.csv
|
|
|
|
curl --retry 4 --retry-connrefused -fsSL -o lib/scala/pkg/src/main/resources/restaurants/data/restaurants.csv https://github.com/enso-org/project-templates/raw/main/Restaurants/data/restaurants.csv
|
|
|
|
curl --retry 4 --retry-connrefused -fsSL -o lib/scala/pkg/src/main/resources/restaurants/src/Main.enso https://github.com/enso-org/project-templates/raw/main/Restaurants/src/Main.enso
|
|
|
|
curl --retry 4 --retry-connrefused -fsSL -o lib/scala/pkg/src/main/resources/stargazers/src/Main.enso https://github.com/enso-org/project-templates/raw/main/Stargazers/src/Main.enso
|
2020-05-15 11:07:58 +03:00
|
|
|
- name: Set Up SBT
|
2020-10-21 17:48:05 +03:00
|
|
|
shell: bash
|
2020-05-15 11:07:58 +03:00
|
|
|
run: |
|
2020-10-01 12:37:46 +03:00
|
|
|
curl --retry 4 --retry-connrefused -fsSL -o sbt.tgz https://github.com/sbt/sbt/releases/download/v${{env.sbtVersion}}/sbt-${{env.sbtVersion}}.tgz
|
2020-05-15 11:07:58 +03:00
|
|
|
tar -xzf sbt.tgz
|
2020-10-21 17:48:05 +03:00
|
|
|
echo $GITHUB_WORKSPACE/sbt/bin/ >> $GITHUB_PATH
|
2020-04-10 22:24:37 +03:00
|
|
|
|
2020-05-15 11:07:58 +03:00
|
|
|
# Caches
|
|
|
|
- name: Cache SBT
|
2020-06-15 18:48:04 +03:00
|
|
|
uses: actions/cache@v2
|
2020-05-15 11:07:58 +03:00
|
|
|
with:
|
2020-06-15 18:48:04 +03:00
|
|
|
path: |
|
|
|
|
~/.sbt
|
|
|
|
~/.ivy2/cache
|
|
|
|
~/.cache
|
|
|
|
key: ${{ runner.os }}-sbt-${{ hashFiles('**build.sbt') }}
|
2020-05-15 11:07:58 +03:00
|
|
|
restore-keys: ${{ runner.os }}-sbt-
|
2020-04-24 19:33:27 +03:00
|
|
|
|
2020-07-01 14:21:13 +03:00
|
|
|
- name: Bootstrap Enso project
|
2020-08-27 13:00:01 +03:00
|
|
|
run: |
|
|
|
|
sleep 1
|
|
|
|
sbt --no-colors bootstrap
|
2021-08-13 19:14:20 +03:00
|
|
|
|
|
|
|
- name: Verify the Stdlib Version
|
|
|
|
run: |
|
|
|
|
sleep 1
|
|
|
|
sbt --no-colors "stdlib-version-updater/run check"
|
|
|
|
|
|
|
|
# Compile
|
2020-05-15 11:07:58 +03:00
|
|
|
- name: Build Enso
|
2020-08-27 13:00:01 +03:00
|
|
|
run: |
|
|
|
|
sleep 1
|
|
|
|
sbt --no-colors compile
|
2020-04-10 22:24:37 +03:00
|
|
|
|
2020-05-15 11:07:58 +03:00
|
|
|
# Tests
|
2020-07-14 14:44:40 +03:00
|
|
|
- name: Setup Tests on Windows
|
|
|
|
if: runner.os == 'Windows'
|
2020-10-21 17:48:05 +03:00
|
|
|
shell: bash
|
2020-07-20 17:13:37 +03:00
|
|
|
run: |
|
2020-10-21 17:48:05 +03:00
|
|
|
echo "CI_TEST_TIMEFACTOR=2" >> $GITHUB_ENV
|
|
|
|
echo "CI_TEST_FLAKY_ENABLE=true" >> $GITHUB_ENV
|
2021-06-16 13:00:42 +03:00
|
|
|
|
|
|
|
- name: Build the Launcher Native Image
|
2020-08-28 14:03:09 +03:00
|
|
|
run: |
|
2021-06-15 12:13:22 +03:00
|
|
|
sbt --no-colors "launcher/assembly"
|
|
|
|
sbt --no-colors --mem 1536 "launcher/buildNativeImage"
|
2021-06-16 13:00:42 +03:00
|
|
|
- name: Build the PM Native Image
|
|
|
|
run: |
|
|
|
|
sbt --no-colors "project-manager/assembly"
|
|
|
|
sbt --no-colors --mem 1536 "project-manager/buildNativeImage"
|
2021-06-15 12:13:22 +03:00
|
|
|
|
2021-11-23 11:51:17 +03:00
|
|
|
# The runtime/clean is needed to avoid issues with Truffle Instrumentation.
|
|
|
|
# It should be removed once #1992 is fixed.
|
2020-12-02 18:56:47 +03:00
|
|
|
- name: Build the Runner & Runtime Uberjars
|
|
|
|
run: |
|
|
|
|
sleep 1
|
2021-02-22 16:32:55 +03:00
|
|
|
sbt --no-colors "runtime/clean; engine-runner/assembly"
|
2020-12-02 18:56:47 +03:00
|
|
|
|
2020-05-15 11:07:58 +03:00
|
|
|
- name: Test Enso
|
2020-08-27 13:00:01 +03:00
|
|
|
run: |
|
|
|
|
sleep 1
|
2021-02-22 16:32:55 +03:00
|
|
|
sbt --no-colors "set Global / parallelExecution := false; runtime/clean; compile; test"
|
2020-05-15 11:07:58 +03:00
|
|
|
- name: Check Runtime Benchmark Compilation
|
2020-08-27 13:00:01 +03:00
|
|
|
run: |
|
|
|
|
sleep 1
|
2021-02-22 16:32:55 +03:00
|
|
|
sbt --no-colors "runtime/clean; runtime/Benchmark/compile"
|
2020-07-01 14:21:13 +03:00
|
|
|
- name: Check Language Server Benchmark Compilation
|
2020-08-27 13:00:01 +03:00
|
|
|
run: |
|
|
|
|
sleep 1
|
2021-11-23 11:51:17 +03:00
|
|
|
sbt --no-colors "runtime/clean; language-server/Benchmark/compile"
|
2020-07-06 16:55:21 +03:00
|
|
|
- name: Check Searcher Benchmark Compilation
|
2020-08-27 13:00:01 +03:00
|
|
|
run: |
|
|
|
|
sleep 1
|
|
|
|
sbt --no-colors searcher/Benchmark/compile
|
2020-04-10 22:24:37 +03:00
|
|
|
|
2020-10-06 18:45:02 +03:00
|
|
|
# Build Distribution
|
2020-12-09 16:58:11 +03:00
|
|
|
- name: Build the Project Manager Native Image
|
2020-08-27 13:00:01 +03:00
|
|
|
run: |
|
|
|
|
sleep 1
|
2021-06-15 12:13:22 +03:00
|
|
|
sbt --no-colors project-manager/assembly
|
|
|
|
sbt --no-colors --mem 1536 "launcher/buildNativeImage"
|
2020-05-15 11:07:58 +03:00
|
|
|
- name: Build the Parser JS Bundle
|
2021-02-22 16:32:55 +03:00
|
|
|
# The builds are run on 3 platforms, but
|
|
|
|
# Flatbuffer schemas are platform agnostic, so they just need to be
|
|
|
|
# uploaded from one of the runners.
|
2020-08-07 12:18:09 +03:00
|
|
|
if: runner.os == 'Linux'
|
2021-02-22 16:32:55 +03:00
|
|
|
run: sbt --no-colors syntaxJS/fullOptJS
|
2021-05-17 19:44:21 +03:00
|
|
|
- name: Build the docs from standard library sources.
|
|
|
|
if: runner.os == 'Linux'
|
|
|
|
run: sbt --no-colors docs-generator/run
|
2020-05-04 15:36:05 +03:00
|
|
|
|
2020-08-07 12:18:09 +03:00
|
|
|
# Prepare distributions
|
2020-08-19 15:24:31 +03:00
|
|
|
# The version used in filenames is based on the version of the launcher.
|
|
|
|
# Currently launcher and engine versions are tied to each other so they
|
|
|
|
# can be used interchangeably like this. If in the future the versions
|
|
|
|
# become independent, this may require updating to use proper versions
|
|
|
|
# for each component.
|
2020-08-07 12:18:09 +03:00
|
|
|
- name: Prepare Distribution Version (Unix)
|
|
|
|
if: runner.os != 'Windows'
|
|
|
|
shell: bash
|
|
|
|
run: |
|
2020-08-19 15:24:31 +03:00
|
|
|
DIST_VERSION=$(./enso version --json --only-launcher | jq -r '.version')
|
2020-10-21 17:48:05 +03:00
|
|
|
echo "DIST_VERSION=$DIST_VERSION" >> $GITHUB_ENV
|
2020-08-07 12:18:09 +03:00
|
|
|
|
|
|
|
- name: Prepare Distribution Version (Windows)
|
|
|
|
if: runner.os == 'Windows'
|
|
|
|
shell: bash
|
|
|
|
run: |
|
2020-08-19 15:24:31 +03:00
|
|
|
DIST_VERSION=$(./enso.exe version --json --only-launcher | jq -r '.version')
|
2020-10-21 17:48:05 +03:00
|
|
|
echo "DIST_VERSION=$DIST_VERSION" >> $GITHUB_ENV
|
2020-08-07 12:18:09 +03:00
|
|
|
|
|
|
|
# Currently the only architecture supported by Github runners is amd64
|
|
|
|
- name: Prepare Distribution Environment
|
|
|
|
shell: bash
|
2020-12-09 16:58:11 +03:00
|
|
|
run: >
|
|
|
|
DIST_OS=$(echo ${{ runner.os }} | awk '{print tolower($0)}') bash
|
|
|
|
tools/ci/prepare-distribution-env.sh
|
2020-08-07 12:18:09 +03:00
|
|
|
|
2020-12-09 16:58:11 +03:00
|
|
|
- name: Prepare Launcher Distribution
|
2020-08-07 12:18:09 +03:00
|
|
|
shell: bash
|
|
|
|
run: |
|
2020-12-09 16:58:11 +03:00
|
|
|
sleep 1
|
2021-01-15 18:26:51 +03:00
|
|
|
sbt buildLauncherDistribution
|
2020-08-07 12:18:09 +03:00
|
|
|
|
|
|
|
# The way artifacts are uploaded currently does not preserve the
|
|
|
|
# executable bits for Unix. However putting artifacts into a ZIP would
|
|
|
|
# create a twice nested ZIP file. For now, users downloading artifacts
|
|
|
|
# from the CI builds have to set the bit themselves.
|
2020-12-09 16:58:11 +03:00
|
|
|
# So the following line has been removed from this step, as it does
|
2020-08-07 12:18:09 +03:00
|
|
|
# nothing useful:
|
|
|
|
# chmod +x $ENGINE_DIST_DIR/bin/enso
|
|
|
|
- name: Prepare Engine Distribution
|
|
|
|
shell: bash
|
|
|
|
run: |
|
2020-12-09 16:58:11 +03:00
|
|
|
sleep 1
|
2021-02-22 16:32:55 +03:00
|
|
|
sbt "runtime/clean; buildEngineDistribution"
|
2020-12-09 16:58:11 +03:00
|
|
|
|
|
|
|
- name: Prepare Project Manager Distribution
|
|
|
|
shell: bash
|
|
|
|
run: |
|
|
|
|
sleep 1
|
2021-01-15 18:26:51 +03:00
|
|
|
sbt buildProjectManagerDistribution
|
2020-08-07 12:18:09 +03:00
|
|
|
|
2020-10-06 18:45:02 +03:00
|
|
|
# Test Distribution
|
2020-10-27 14:45:10 +03:00
|
|
|
- name: Prepare Engine Test Environment
|
|
|
|
shell: bash
|
|
|
|
run: |
|
2021-09-03 22:41:12 +03:00
|
|
|
mkdir -p test/Google_Api_Test/data
|
|
|
|
echo "$GDOC_KEY" > test/Google_Api_Test/data/secret.json
|
2020-10-27 14:45:10 +03:00
|
|
|
go get -v github.com/ahmetb/go-httpbin/cmd/httpbin
|
|
|
|
$(go env GOPATH)/bin/httpbin -host :8080 &
|
2021-09-03 22:41:12 +03:00
|
|
|
env:
|
|
|
|
GDOC_KEY: ${{secrets.GDOC_TEST_CREDENTIAL}}
|
2020-10-27 14:45:10 +03:00
|
|
|
|
2021-03-09 18:19:05 +03:00
|
|
|
- name: Install Graalpython & FastR
|
2021-03-05 14:18:37 +03:00
|
|
|
if: runner.os != 'Windows'
|
|
|
|
run: |
|
|
|
|
gu install python
|
2021-03-09 18:19:05 +03:00
|
|
|
gu install r
|
2021-03-05 14:18:37 +03:00
|
|
|
|
2021-03-16 19:53:04 +03:00
|
|
|
- name: Prepare configuration for the Database tests
|
|
|
|
shell: bash
|
|
|
|
if: runner.os == 'Linux'
|
|
|
|
run: |
|
|
|
|
echo "ENSO_DATABASE_TEST_HOST=127.0.0.1" >> $GITHUB_ENV
|
|
|
|
echo "ENSO_DATABASE_TEST_DB_NAME=enso_test_db" >> $GITHUB_ENV
|
|
|
|
echo "ENSO_DATABASE_TEST_DB_USER=enso_test_user" >> $GITHUB_ENV
|
|
|
|
echo "ENSO_DATABASE_TEST_DB_PASSWORD=enso_test_password" >> $GITHUB_ENV
|
|
|
|
- name: Configure PostgreSQL for the Database tests
|
|
|
|
uses: harmon758/postgresql-action@v1
|
|
|
|
if: runner.os == 'Linux'
|
|
|
|
with:
|
|
|
|
postgresql version: "latest"
|
|
|
|
postgresql db: ${{ env.ENSO_DATABASE_TEST_DB_NAME }}
|
|
|
|
postgresql user: ${{ env.ENSO_DATABASE_TEST_DB_USER }}
|
|
|
|
postgresql password: ${{ env.ENSO_DATABASE_TEST_DB_PASSWORD }}
|
|
|
|
|
2021-09-18 15:48:13 +03:00
|
|
|
- name: Test Engine Distribution Without Caches (Unix)
|
2020-10-06 18:45:02 +03:00
|
|
|
shell: bash
|
|
|
|
if: runner.os != 'Windows'
|
|
|
|
run: |
|
2021-09-24 14:24:44 +03:00
|
|
|
$ENGINE_DIST_DIR/bin/enso --no-ir-caches --run test/Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --no-ir-caches --run test/Table_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --no-ir-caches --run test/Database_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --no-ir-caches --run test/Geo_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --no-ir-caches --run test/Visualization_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --no-ir-caches --run test/Image_Tests
|
|
|
|
|
|
|
|
- name: Compile the Standard Libraries (Unix)
|
|
|
|
shell: bash
|
|
|
|
if: runner.os != 'Windows'
|
|
|
|
run: |
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Base/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Test/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Visualization/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Searcher/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Table/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Database/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Geo/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Google_Api/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Image/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Examples/$DIST_VERSION
|
2020-10-06 18:45:02 +03:00
|
|
|
|
2021-09-18 15:48:13 +03:00
|
|
|
- name: Test Engine Distribution With Caches (Unix)
|
|
|
|
shell: bash
|
|
|
|
if: runner.os != 'Windows'
|
|
|
|
run: |
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --run test/Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --run test/Table_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --run test/Database_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --run test/Geo_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --run test/Visualization_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso --ir-caches --run test/Image_Tests
|
|
|
|
|
|
|
|
- name: Test Engine Distribution Without Caches (Windows)
|
|
|
|
shell: bash
|
|
|
|
if: runner.os == 'Windows'
|
|
|
|
run: |
|
2021-09-24 14:24:44 +03:00
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --no-ir-caches --run test/Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --no-ir-caches --run test/Table_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --no-ir-caches --run test/Database_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --no-ir-caches --run test/Geo_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --no-ir-caches --run test/Visualization_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --no-ir-caches --run test/Image_Tests
|
|
|
|
|
|
|
|
- name: Compile the Standard Libraries (Windows)
|
|
|
|
shell: bash
|
|
|
|
if: runner.os == 'Windows'
|
|
|
|
run: |
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Base/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Database/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Examples/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Geo/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Google_Api/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Image/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Searcher/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Table/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Test/$DIST_VERSION
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --no-compile-dependencies --no-global-cache --compile $ENGINE_DIST_DIR/lib/Standard/Visualization/$DIST_VERSION
|
2021-09-18 15:48:13 +03:00
|
|
|
|
|
|
|
- name: Test Engine Distribution With Caches (Windows)
|
2020-10-06 18:45:02 +03:00
|
|
|
shell: bash
|
|
|
|
if: runner.os == 'Windows'
|
|
|
|
run: |
|
2021-09-18 15:48:13 +03:00
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --run test/Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --run test/Table_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --run test/Database_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --run test/Geo_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --run test/Visualization_Tests
|
|
|
|
$ENGINE_DIST_DIR/bin/enso.bat --ir-caches --run test/Image_Tests
|
2020-11-05 18:53:50 +03:00
|
|
|
|
2020-05-15 11:07:58 +03:00
|
|
|
# Publish
|
2021-08-13 19:14:20 +03:00
|
|
|
- name: Compress the built artifacts for upload
|
|
|
|
# The artifacts are compressed before upload to work around an error with long path handling in the upload-artifact action on Windows.
|
|
|
|
# See: https://github.com/actions/upload-artifact/issues/240
|
|
|
|
shell: bash
|
|
|
|
working-directory: ${{ env.ENGINE_DIST_ROOT }}
|
|
|
|
run: 7z a -r ${{ env.ENGINE_DIST_NAME }}.zip *
|
2020-08-07 12:18:09 +03:00
|
|
|
- name: Publish the Engine Distribution Artifact
|
2020-10-21 17:48:05 +03:00
|
|
|
uses: actions/upload-artifact@v2
|
2020-05-15 11:07:58 +03:00
|
|
|
with:
|
2021-01-15 18:26:51 +03:00
|
|
|
name: ${{ env.ENGINE_DIST_NAME }}
|
2021-08-13 19:14:20 +03:00
|
|
|
path: ${{ env.ENGINE_DIST_ROOT }}/${{ env.ENGINE_DIST_NAME }}.zip
|
2020-12-09 16:58:11 +03:00
|
|
|
- name: Publish the Launcher
|
2020-08-07 12:18:09 +03:00
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
with:
|
2021-01-15 18:26:51 +03:00
|
|
|
name: ${{ env.LAUNCHER_DIST_NAME }}
|
2020-08-07 12:18:09 +03:00
|
|
|
path: ${{ env.LAUNCHER_DIST_ROOT }}
|
2020-12-09 16:58:11 +03:00
|
|
|
- name: Publish the Project Manager
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
with:
|
2021-01-15 18:26:51 +03:00
|
|
|
name: ${{ env.PROJECTMANAGER_DIST_NAME }}
|
2020-12-09 16:58:11 +03:00
|
|
|
path: ${{ env.PROJECTMANAGER_DIST_ROOT }}
|
2020-08-07 12:18:09 +03:00
|
|
|
|
2020-05-15 11:07:58 +03:00
|
|
|
- name: Prepare the FlatBuffers Schemas for Upload
|
2020-08-07 12:18:09 +03:00
|
|
|
# The builds are run on 3 platforms, but Flatbuffer schemas are platform
|
|
|
|
# agnostic, so they just need to be uploaded from one of the runners.
|
|
|
|
if: runner.os == 'Linux'
|
2020-05-15 11:07:58 +03:00
|
|
|
run: |
|
|
|
|
mkdir fbs-upload
|
|
|
|
cp -r "engine/language-server/src/main/schema" fbs-upload/fbs-schema/
|
|
|
|
zip -r -m -ll "fbs-upload/fbs-schema.zip" "fbs-upload/fbs-schema/"
|
|
|
|
- name: Publish the FlatBuffers Schemas
|
2020-08-07 12:18:09 +03:00
|
|
|
if: runner.os == 'Linux'
|
2020-10-21 17:48:05 +03:00
|
|
|
uses: actions/upload-artifact@v2
|
2020-05-15 11:07:58 +03:00
|
|
|
with:
|
|
|
|
name: Engine Protocol FlatBuffers Schemas
|
|
|
|
path: ./fbs-upload/fbs-schema.zip
|
|
|
|
- name: Prepare Parser JS Bundle for Upload
|
2020-08-07 12:18:09 +03:00
|
|
|
if: runner.os == 'Linux'
|
2020-05-15 11:07:58 +03:00
|
|
|
run: |
|
|
|
|
mkdir parser-upload
|
|
|
|
cp ./target/scala-parser.js parser-upload
|
|
|
|
- name: Publish the Parser JS Bundle
|
2020-08-07 12:18:09 +03:00
|
|
|
if: runner.os == 'Linux'
|
2020-10-21 17:48:05 +03:00
|
|
|
uses: actions/upload-artifact@v2
|
2020-05-15 11:07:58 +03:00
|
|
|
with:
|
|
|
|
name: Parser JS Bundle
|
|
|
|
path: ./target/scala-parser.js
|
2021-05-17 19:44:21 +03:00
|
|
|
# - name: Publish the standard library docs
|
|
|
|
# if: runner.os == 'Linux'
|
|
|
|
# uses: andstor/copycat-action@v3
|
|
|
|
# with:
|
|
|
|
# personal_token: ${{ secrets.CI_PAT }}
|
2021-07-08 16:38:20 +03:00
|
|
|
# src_path: ./distribution/docs-js/
|
2021-05-17 19:44:21 +03:00
|
|
|
# dst_path: /docs/reference/.
|
|
|
|
# dst_branch: stdlib-update
|
|
|
|
# dst_owner: enso-org
|
|
|
|
# dst_repo_name: website
|
|
|
|
# clean: true
|
2020-07-10 13:57:42 +03:00
|
|
|
- name: Publish the Manifest
|
2020-08-07 12:18:09 +03:00
|
|
|
if: runner.os == 'Linux'
|
2020-07-10 13:57:42 +03:00
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
with:
|
|
|
|
name: manifest
|
2020-12-09 16:58:11 +03:00
|
|
|
path: ${{ env.ENGINE_DIST_DIR }}/manifest.yaml
|
2020-08-07 12:18:09 +03:00
|
|
|
|
|
|
|
# Publish FlatBuffer Schemas and Parser Bundle to S3
|
2020-05-15 11:07:58 +03:00
|
|
|
- name: Prepare AWS Session
|
2020-08-07 12:18:09 +03:00
|
|
|
shell: bash
|
|
|
|
if: runner.os == 'Linux'
|
2020-05-15 11:07:58 +03:00
|
|
|
run: |
|
|
|
|
aws configure --profile s3-upload <<-EOF > /dev/null 2>&1
|
2020-06-23 19:08:52 +03:00
|
|
|
${{ secrets.ARTEFACT_S3_ACCESS_KEY_ID }}
|
|
|
|
${{ secrets.ARTEFACT_S3_SECRET_ACCESS_KEY }}
|
2020-05-15 11:07:58 +03:00
|
|
|
us-west-2
|
|
|
|
text
|
|
|
|
EOF
|
|
|
|
- name: Upload Parser JS Bundle to S3
|
2020-08-07 12:18:09 +03:00
|
|
|
shell: bash
|
|
|
|
if: runner.os == 'Linux'
|
2020-05-15 11:07:58 +03:00
|
|
|
run: |
|
|
|
|
aws s3 sync ./parser-upload s3://packages-luna/parser-js/nightly/`git rev-parse HEAD` --profile s3-upload --acl public-read --delete
|
|
|
|
- name: Upload FlatBuffers Schemas to S3
|
2020-08-07 12:18:09 +03:00
|
|
|
shell: bash
|
|
|
|
if: runner.os == 'Linux'
|
2020-05-15 11:07:58 +03:00
|
|
|
run: |
|
|
|
|
aws s3 sync ./fbs-upload s3://packages-luna/fbs-schema/nightly/`git rev-parse HEAD` --profile s3-upload --acl public-read --delete
|
|
|
|
- name: Teardown AWS Session
|
2020-08-07 12:18:09 +03:00
|
|
|
shell: bash
|
|
|
|
if: runner.os == 'Linux'
|
2020-05-15 11:07:58 +03:00
|
|
|
run: |
|
|
|
|
aws configure --profile s3-upload <<-EOF > /dev/null 2>&1
|
|
|
|
null
|
|
|
|
null
|
|
|
|
null
|
|
|
|
text
|
|
|
|
EOF
|