2020-03-24 22:35:42 +03:00
|
|
|
name: Enso CI
|
2020-03-24 15:52:02 +03:00
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
branches: [ master ]
|
2020-03-24 22:51:05 +03:00
|
|
|
paths-ignore:
|
2020-04-08 17:07:53 +03:00
|
|
|
- '.github/PULL_REQUEST_TEMPLATE.md'
|
|
|
|
- '.github/CODEOWNERS'
|
|
|
|
- '.github/ISSUE_TEMPLATE'
|
|
|
|
- '/doc/*'
|
|
|
|
- '.gitignore'
|
|
|
|
- '.scalafmt.conf'
|
|
|
|
- 'CODE_OF_CONDUCT.md'
|
|
|
|
- 'CONTRIBUTING.md'
|
|
|
|
- 'LICENSE'
|
|
|
|
- 'README.md'
|
2020-03-24 15:52:02 +03:00
|
|
|
pull_request:
|
|
|
|
branches: [ master ]
|
|
|
|
paths-ignore:
|
2020-04-08 17:07:53 +03:00
|
|
|
- '.github/PULL_REQUEST_TEMPLATE.md'
|
|
|
|
- '.github/CODEOWNERS'
|
|
|
|
- '.github/ISSUE_TEMPLATE'
|
|
|
|
- '/doc/*'
|
|
|
|
- '.gitignore'
|
|
|
|
- '.scalafmt.conf'
|
|
|
|
- 'CODE_OF_CONDUCT.md'
|
|
|
|
- 'CONTRIBUTING.md'
|
|
|
|
- 'LICENSE'
|
|
|
|
- 'README.md'
|
2020-03-24 15:52:02 +03:00
|
|
|
|
|
|
|
env:
|
|
|
|
# Please ensure that this is in sync with graalAPIVersion in build.sbt
|
|
|
|
graalVersion: 20.0.0
|
|
|
|
javaVersion: java8
|
|
|
|
# Please ensure that this is in sync with project/build.properties
|
2020-04-10 13:11:15 +03:00
|
|
|
sbtVersion: 1.3.5
|
2020-03-24 15:52:02 +03:00
|
|
|
|
|
|
|
jobs:
|
|
|
|
|
2020-03-25 10:53:33 +03:00
|
|
|
# This job is responsible for testing the codebase
|
2020-03-24 22:35:42 +03:00
|
|
|
test:
|
|
|
|
name: Test
|
2020-03-24 15:52:02 +03:00
|
|
|
runs-on: ${{ matrix.os }}
|
2020-03-24 22:35:42 +03:00
|
|
|
timeout-minutes: 30
|
2020-03-24 15:52:02 +03:00
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
os: [windows-latest, macOS-latest, ubuntu-latest]
|
|
|
|
fail-fast: false
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
2020-03-24 22:35:42 +03:00
|
|
|
- name: Setup GraalVM Environment
|
|
|
|
uses: DeLaGuardo/setup-graalvm@2.0
|
|
|
|
with:
|
|
|
|
graalvm-version: ${{ env.graalVersion }}.${{ env.javaVersion }}
|
|
|
|
- name: Set Up SBT
|
|
|
|
run: |
|
|
|
|
curl -fSL -o sbt.tgz https://piccolo.link/sbt-${{env.sbtVersion}}.tgz
|
|
|
|
tar -xzf sbt.tgz
|
|
|
|
echo ::add-path::$GITHUB_WORKSPACE/sbt/bin/
|
|
|
|
- name: Test Enso
|
|
|
|
run: sbt --no-colors test
|
|
|
|
- name: Benchmark the Parser
|
|
|
|
run: sbt -no-colors syntax/bench
|
|
|
|
- name: Check Runtime Benchmark Compilation
|
|
|
|
run: sbt -no-colors runtime/Benchmark/compile
|
|
|
|
- name: Build the Uberjar
|
|
|
|
run: sbt -no-colors runner/assembly
|
|
|
|
- name: Test the Uberjar
|
|
|
|
run: ./enso.jar --run ci/Test.enso
|
|
|
|
|
2020-03-25 10:53:33 +03:00
|
|
|
# This job is responsible for building the artifacts
|
2020-03-24 22:35:42 +03:00
|
|
|
build:
|
|
|
|
name: Build
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
timeout-minutes: 30
|
|
|
|
steps:
|
2020-03-25 10:53:33 +03:00
|
|
|
- name: Checkout (PR)
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
if: github.event_name == 'pull_request'
|
2020-03-24 22:35:42 +03:00
|
|
|
with:
|
2020-03-25 10:53:33 +03:00
|
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
|
|
- name: Checkout (Branch)
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
if: github.event_name != 'pull_request'
|
2020-03-24 22:35:42 +03:00
|
|
|
- name: Setup GraalVM Environment
|
|
|
|
uses: DeLaGuardo/setup-graalvm@2.0
|
|
|
|
with:
|
|
|
|
graalvm-version: ${{ env.graalVersion }}.${{ env.javaVersion }}
|
|
|
|
- name: Set Up SBT
|
|
|
|
run: |
|
|
|
|
curl -fSL -o sbt.tgz https://piccolo.link/sbt-${{env.sbtVersion}}.tgz
|
|
|
|
tar -xzf sbt.tgz
|
|
|
|
echo ::add-path::$GITHUB_WORKSPACE/sbt/bin/
|
|
|
|
- name: Build the Uberjar
|
|
|
|
run: sbt --no-colors runner/assembly
|
|
|
|
- name: Publish the Uberjar
|
|
|
|
uses: actions/upload-artifact@v1.0.0
|
|
|
|
with:
|
|
|
|
name: Enso CLI
|
|
|
|
path: ./enso.jar
|
|
|
|
- name: Build the Parser JS Bundle
|
|
|
|
run: sbt -no-colors syntaxJS/fullOptJS
|
|
|
|
- name: Publish the Parser JS Bundle
|
|
|
|
uses: actions/upload-artifact@v1.0.0
|
|
|
|
with:
|
|
|
|
name: Parser JS Bundle
|
|
|
|
path: ./target/scala-parser.js
|
|
|
|
- name: Prepare Parser JS Bundle for Upload
|
|
|
|
run: |
|
|
|
|
mkdir parser_upload
|
|
|
|
cp ./target/scala-parser.js parser_upload
|
|
|
|
- name: Prepare AWS Session
|
|
|
|
run: |
|
|
|
|
aws configure --profile s3-upload <<-EOF > /dev/null 2>&1
|
|
|
|
${{ secrets.PARSER_S3_ACCESS_KEY_ID }}
|
|
|
|
${{ secrets.PARSER_S3_SECRET_ACCESS_KEY }}
|
|
|
|
us-west-2
|
|
|
|
text
|
|
|
|
EOF
|
|
|
|
- name: Upload Parser JS Bundle to S3
|
|
|
|
run: |
|
2020-03-25 10:53:33 +03:00
|
|
|
aws s3 sync ./parser_upload s3://packages-luna/parser-js/nightly/`git rev-parse HEAD` --profile s3-upload --acl public-read --delete
|
2020-03-24 22:35:42 +03:00
|
|
|
- name: Teardown AWS Session
|
|
|
|
run: |
|
|
|
|
aws configure --profile s3-upload <<-EOF > /dev/null 2>&1
|
|
|
|
null
|
|
|
|
null
|
|
|
|
null
|
|
|
|
text
|
|
|
|
EOF
|