Build script merge (#3743)

Merged the build script into main repository. Some related cleanups.
This commit is contained in:
Michał Wawrzyniec Urbańczyk 2022-10-10 23:38:48 +02:00 committed by GitHub
parent 5386a8be07
commit ad69eeb4ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
460 changed files with 23659 additions and 2992 deletions

View File

@ -1,11 +0,0 @@
[build]
target-dir = "target/rust/"
rustflags = ["--cfg", "tokio_unstable"]
[target.wasm32-unknown-unknown]
rustflags = [
# Increas the stack size from 1MB to 2MB. This is required to avoid running out of stack space
# in debug builds. The error is reported as `RuntimeError: memory access out of bounds`.
"-C",
"link-args=-z stack-size=2097152",
]

11
.cargo/config.toml Normal file
View File

@ -0,0 +1,11 @@
[build]
target-dir = "target/rust/"
rustflags = ["--cfg", "tokio_unstable"]
[target.wasm32-unknown-unknown]
rustflags = [
# Increas the stack size from 1MB to 2MB. This is required to avoid running out of stack space
# in debug builds. The error is reported as `RuntimeError: memory access out of bounds`.
"-C",
"link-args=-z stack-size=2097152",
]

7
.github/CODEOWNERS vendored
View File

@ -1,6 +1,11 @@
# Change log
CHANGELOG.md
# Build script & utilities
/run @mwu-tow
/run.bat @mwu-tow
/build @mwu-tow
# Rust Libraries and Related Files
rust-toolchain.toml @MichaelMauderer @mwu-tow @farmaazon
rustfmt.toml @MichaelMauderer @mwu-tow @farmaazon
@ -20,8 +25,6 @@ Cargo.toml
/lib/scala/interpreter-dsl/ @4e6 @jaroslavtulach
# GUI
/run @MichaelMauderer @wdanilo
/build/ @MichaelMauderer @wdanilo
/app/gui/ @MichaelMauderer @wdanilo @farmaazon @mwu-tow
/app/gui/view/ @MichaelMauderer @wdanilo @farmaazon
/app/ide-desktop/ @MichaelMauderer @wdanilo

View File

@ -8,9 +8,7 @@ on:
workflow_dispatch:
inputs:
just-check:
description:
If set, benchmarks will be only checked to run correctly, not
to measure actual performance.
description: If set, benchmarks will be only checked to run correctly, not to measure actual performance.
required: true
type: boolean
default: false
@ -22,37 +20,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -64,6 +50,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run backend benchmark runtime
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -73,6 +64,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
ENSO_BUILD_MINIMAL_RUN: ${{ inputs.just-check }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
env:
ENSO_BUILD_MINIMAL_RUN: ${{ true == inputs.just-check }}
ENSO_BUILD_SKIP_VERSION_CHECK: "true"

68
.github/workflows/changelog.yml vendored Normal file
View File

@ -0,0 +1,68 @@
name: Changelog
on:
pull_request:
types:
- labeled
- unlabeled
- synchronize
- opened
- reopened
jobs:
changelog:
name: Changelog
runs-on:
- X64
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
uses: actions/checkout@v2
with:
clean: false
submodules: recursive
- name: Build Script Setup
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run changelog-check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: List files if failed (Windows)
run: Get-ChildItem -Force -Recurse
if: failure() && runner.os == 'Windows'
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
env:
ENSO_BUILD_SKIP_VERSION_CHECK: "true"

View File

@ -6,45 +6,6 @@ on:
pull_request: {}
workflow_dispatch: {}
jobs:
enso-build-cli-ci-gen-job-assert-changelog-linux:
name: Assert if CHANGELOG.md was updated (on pull request)
runs-on:
- self-hosted
- Linux
- engine
steps:
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
uses: actions/checkout@v2
with:
clean: false
submodules: recursive
- id: changed_files
run: |-
git fetch
list=`git diff --name-only origin/develop HEAD | tr '\n' ' '`
echo $list
echo "::set-output name=list::'$list'"
- run:
if [[ ${{ contains(steps.changed_files.outputs.list,'CHANGELOG.md') ||
contains(github.event.head_commit.message,'[ci no changelog needed]') || contains(github.event.pull_request.body,'[ci
no changelog needed]') || github.event.pull_request.user.login == 'dependabot'
}} == false ]]; then exit 1; fi
if:
github.base_ref == 'develop' || github.base_ref == 'unstable' || github.base_ref
== 'stable'
enso-build-cli-ci-gen-job-build-backend-linux:
name: Build Backend (linux)
runs-on:
@ -54,37 +15,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -96,6 +45,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run backend get
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -105,6 +59,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
enso-build-cli-ci-gen-job-build-backend-macos:
name: Build Backend (macos)
runs-on:
@ -112,37 +71,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -154,6 +101,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run backend get
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -163,6 +115,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
enso-build-cli-ci-gen-job-build-backend-windows:
name: Build Backend (windows)
runs-on:
@ -172,37 +129,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -214,6 +159,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run backend get
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -223,6 +173,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
enso-build-cli-ci-gen-job-build-wasm-linux:
name: Build GUI (WASM) (linux)
runs-on:
@ -232,37 +187,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -274,6 +217,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run --upload-artifacts ${{ runner.os == 'Linux' }} wasm build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -283,6 +231,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
enso-build-cli-ci-gen-job-build-wasm-macos:
name: Build GUI (WASM) (macos)
runs-on:
@ -290,37 +243,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -332,6 +273,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run --upload-artifacts ${{ runner.os == 'Linux' }} wasm build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -341,6 +287,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
enso-build-cli-ci-gen-job-build-wasm-windows:
name: Build GUI (WASM) (windows)
runs-on:
@ -350,37 +301,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -392,6 +331,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run --upload-artifacts ${{ runner.os == 'Linux' }} wasm build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -401,6 +345,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
enso-build-cli-ci-gen-job-cancel-workflow-linux:
name: Cancel Previous Runs
runs-on:
@ -419,37 +368,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -461,6 +398,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run lint
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -470,6 +412,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
enso-build-cli-ci-gen-job-native-test-linux:
name: Native GUI tests (linux)
runs-on:
@ -479,37 +426,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -521,6 +456,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run wasm test --no-wasm
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -530,6 +470,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
enso-build-cli-ci-gen-job-package-ide-linux:
name: Package IDE (linux)
needs:
@ -542,37 +487,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -584,6 +517,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run ide build --wasm-source current-ci-run --backend-source current-ci-run
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -593,6 +531,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
enso-build-cli-ci-gen-job-package-ide-macos:
name: Package IDE (macos)
needs:
@ -603,37 +546,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -645,6 +576,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run ide build --wasm-source current-ci-run --backend-source current-ci-run
env:
APPLEID: ${{ secrets.APPLE_NOTARIZATION_USERNAME }}
@ -659,6 +595,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
enso-build-cli-ci-gen-job-package-ide-windows:
name: Package IDE (windows)
needs:
@ -671,37 +612,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -713,6 +642,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run ide build --wasm-source current-ci-run --backend-source current-ci-run
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -724,6 +658,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
enso-build-cli-ci-gen-job-wasm-test-linux:
name: WASM GUI tests (linux)
runs-on:
@ -733,37 +672,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -775,6 +702,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run wasm test --no-native
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -784,5 +716,10 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
env:
ENSO_BUILD_SKIP_VERSION_CHECK: "true"

View File

@ -13,37 +13,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -71,37 +59,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -113,6 +89,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run --upload-artifacts ${{ runner.os == 'Linux' }} wasm build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -122,6 +103,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
enso-build-cli-ci-gen-job-upload-backend-linux:
name: Upload Backend (linux)
needs:
@ -133,37 +119,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -175,6 +149,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run backend upload
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -184,6 +163,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
env:
ENSO_RELEASE_ID: ${{needs.enso-build-cli-ci-gen-draft-release-linux.outputs.ENSO_RELEASE_ID}}
ENSO_VERSION: ${{needs.enso-build-cli-ci-gen-draft-release-linux.outputs.ENSO_VERSION}}
@ -196,37 +180,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -238,6 +210,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run backend upload
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -247,6 +224,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
env:
ENSO_RELEASE_ID: ${{needs.enso-build-cli-ci-gen-draft-release-linux.outputs.ENSO_RELEASE_ID}}
ENSO_VERSION: ${{needs.enso-build-cli-ci-gen-draft-release-linux.outputs.ENSO_VERSION}}
@ -261,37 +243,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -303,6 +273,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run backend upload
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -312,6 +287,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
env:
ENSO_RELEASE_ID: ${{needs.enso-build-cli-ci-gen-draft-release-linux.outputs.ENSO_RELEASE_ID}}
ENSO_VERSION: ${{needs.enso-build-cli-ci-gen-draft-release-linux.outputs.ENSO_VERSION}}
@ -327,37 +307,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -369,6 +337,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run release deploy-to-ecr
env:
AWS_ACCESS_KEY_ID: ${{ secrets.ECR_PUSH_RUNTIME_ACCESS_KEY_ID }}
@ -382,6 +355,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
env:
ENSO_RELEASE_ID: ${{needs.enso-build-cli-ci-gen-draft-release-linux.outputs.ENSO_RELEASE_ID}}
ENSO_VERSION: ${{needs.enso-build-cli-ci-gen-draft-release-linux.outputs.ENSO_VERSION}}
@ -400,37 +378,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -442,6 +408,11 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run release publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -451,6 +422,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
env:
AWS_ACCESS_KEY_ID: ${{ secrets.ARTEFACT_S3_ACCESS_KEY_ID }}
AWS_REGION: us-west-1
@ -470,37 +446,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -512,9 +476,12 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run:
./run ide upload --wasm-source current-ci-run --backend-source release
--backend-release ${{env.ENSO_RELEASE_ID}}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run ide upload --wasm-source current-ci-run --backend-source release --backend-release ${{env.ENSO_RELEASE_ID}}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: List files if failed (Windows)
@ -523,6 +490,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
env:
ENSO_RELEASE_ID: ${{needs.enso-build-cli-ci-gen-draft-release-linux.outputs.ENSO_RELEASE_ID}}
ENSO_VERSION: ${{needs.enso-build-cli-ci-gen-draft-release-linux.outputs.ENSO_VERSION}}
@ -537,37 +509,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -579,9 +539,12 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run:
./run ide upload --wasm-source current-ci-run --backend-source release
--backend-release ${{env.ENSO_RELEASE_ID}}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run ide upload --wasm-source current-ci-run --backend-source release --backend-release ${{env.ENSO_RELEASE_ID}}
env:
APPLEID: ${{ secrets.APPLE_NOTARIZATION_USERNAME }}
APPLEIDPASS: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }}
@ -595,6 +558,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
env:
ENSO_RELEASE_ID: ${{needs.enso-build-cli-ci-gen-draft-release-linux.outputs.ENSO_RELEASE_ID}}
ENSO_VERSION: ${{needs.enso-build-cli-ci-gen-draft-release-linux.outputs.ENSO_VERSION}}
@ -611,37 +579,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -653,9 +609,12 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run:
./run ide upload --wasm-source current-ci-run --backend-source release
--backend-release ${{env.ENSO_RELEASE_ID}}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run ide upload --wasm-source current-ci-run --backend-source release --backend-release ${{env.ENSO_RELEASE_ID}}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
WIN_CSC_KEY_PASSWORD: ${{ secrets.MICROSOFT_CODE_SIGNING_CERT_PASSWORD }}
@ -666,6 +625,11 @@ jobs:
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
env:
ENSO_RELEASE_ID: ${{needs.enso-build-cli-ci-gen-draft-release-linux.outputs.ENSO_RELEASE_ID}}
ENSO_VERSION: ${{needs.enso-build-cli-ci-gen-draft-release-linux.outputs.ENSO_VERSION}}

View File

@ -24,37 +24,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -66,31 +54,43 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run backend ci-check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Engine Test Reporter
uses: dorny/test-reporter@v1
if: success() || failure()
with:
max-annotations: 50
name: Engine Tests (linux)
path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml
path-replace-backslashes: true
reporter: java-junit
- name: Standard Library Test Reporter
uses: dorny/test-reporter@v1
if: success() || failure()
with:
max-annotations: 50
name: Standard Library Tests (linux)
path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml
path-replace-backslashes: true
reporter: java-junit
- name: List files if failed (Windows)
run: Get-ChildItem -Force -Recurse
if: failure() && runner.os == 'Windows'
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Stdlib test report
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: Enso Standard Library Tests (linux)
path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml
path-replace-backslashes: "true"
reporter: java-junit
- name: Engine test report
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: Engine Tests (linux)
path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml
path-replace-backslashes: "true"
reporter: java-junit
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
enso-build-cli-ci-gen-job-ci-check-backend-macos:
name: Engine (macos)
runs-on:
@ -98,37 +98,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -140,31 +128,43 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run backend ci-check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Engine Test Reporter
uses: dorny/test-reporter@v1
if: success() || failure()
with:
max-annotations: 50
name: Engine Tests (macos)
path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml
path-replace-backslashes: true
reporter: java-junit
- name: Standard Library Test Reporter
uses: dorny/test-reporter@v1
if: success() || failure()
with:
max-annotations: 50
name: Standard Library Tests (macos)
path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml
path-replace-backslashes: true
reporter: java-junit
- name: List files if failed (Windows)
run: Get-ChildItem -Force -Recurse
if: failure() && runner.os == 'Windows'
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Stdlib test report
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: Enso Standard Library Tests (macos)
path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml
path-replace-backslashes: "true"
reporter: java-junit
- name: Engine test report
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: Engine Tests (macos)
path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml
path-replace-backslashes: "true"
reporter: java-junit
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
enso-build-cli-ci-gen-job-ci-check-backend-windows:
name: Engine (windows)
runs-on:
@ -174,37 +174,25 @@ jobs:
steps:
- name: Setup conda (GH runners only)
uses: s-weigand/setup-conda@v1.0.5
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
update-conda: false
conda-channels: anaconda, conda-forge
- name: Installing wasm-pack
uses: jetli/wasm-pack-action@v0.3.0
if:
startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted
Agent')
if: startsWith(runner.name, 'GitHub Actions') || startsWith(runner.name, 'Hosted Agent')
with:
version: v0.10.2
- name: Setup the Artifact API environment
- name: Expose Artifact API and context information.
uses: actions/github-script@v6
with:
script: |-
core.exportVariable("ACTIONS_RUNTIME_TOKEN", process.env["ACTIONS_RUNTIME_TOKEN"])
core.exportVariable("ACTIONS_RUNTIME_URL", process.env["ACTIONS_RUNTIME_URL"])
core.exportVariable("GITHUB_RETENTION_DAYS", process.env["GITHUB_RETENTION_DAYS"])
script: "\n core.exportVariable(\"ACTIONS_RUNTIME_TOKEN\", process.env[\"ACTIONS_RUNTIME_TOKEN\"])\n core.exportVariable(\"ACTIONS_RUNTIME_URL\", process.env[\"ACTIONS_RUNTIME_URL\"])\n core.exportVariable(\"GITHUB_RETENTION_DAYS\", process.env[\"GITHUB_RETENTION_DAYS\"])\n console.log(context)\n "
- name: Workaround for https://github.com/actions/checkout/issues/590 (Windows)
run:
'"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x
-c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null)
|| :"'
run: '"c:\Program Files\Git\bin\bash.exe" -c "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"'
if: runner.os == 'Windows'
shell: cmd
- name: Workaround for https://github.com/actions/checkout/issues/590 (non-Windows)
run:
"git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git
hash-object -t tree /dev/null) < /dev/null) || :"
run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
if: runner.os != 'Windows'
shell: bash
- name: Checking out the repository
@ -216,30 +204,42 @@ jobs:
run: ./run --help
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean before
run: ./run git-clean
if: "contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./run backend ci-check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Engine Test Reporter
uses: dorny/test-reporter@v1
if: success() || failure()
with:
max-annotations: 50
name: Engine Tests (windows)
path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml
path-replace-backslashes: true
reporter: java-junit
- name: Standard Library Test Reporter
uses: dorny/test-reporter@v1
if: success() || failure()
with:
max-annotations: 50
name: Standard Library Tests (windows)
path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml
path-replace-backslashes: true
reporter: java-junit
- name: List files if failed (Windows)
run: Get-ChildItem -Force -Recurse
if: failure() && runner.os == 'Windows'
- name: List files if failed (non-Windows)
run: ls -lAR
if: failure() && runner.os != 'Windows'
- name: Stdlib test report
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: Enso Standard Library Tests (windows)
path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*/*.xml
path-replace-backslashes: "true"
reporter: java-junit
- name: Engine test report
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: Engine Tests (windows)
path: ${{ env.ENSO_TEST_JUNIT_DIR }}/*.xml
path-replace-backslashes: "true"
reporter: java-junit
- name: Clean after
run: ./run git-clean
if: "always() && always() && contains(github.event.pull_request.labels.*.name, 'CI: Clean build required')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
env:
ENSO_BUILD_SKIP_VERSION_CHECK: "true"

1842
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -5,9 +5,9 @@
members = [
"app/gui",
"app/gui/enso-profiler-enso-data",
"build",
"build/cli",
"build/enso-formatter",
"build/rust-scripts",
"build/deprecated/rust-scripts",
"lib/rust/*",
"lib/rust/parser/src/syntax/tree/visitor",
"lib/rust/parser/jni",
@ -58,12 +58,13 @@ inherits = "test"
opt-level = 2
[profile.buildscript]
inherits = "release"
opt-level = 2
inherits = "dev"
opt-level = 1
lto = false
debug = false
debug = true
debug-assertions = true
#[patch."https://github.com/enso-org/ci-build"]
#enso-build = { path = '../ci-build/build' }
#enso-build-cli = { path = '../ci-build/cli' }
#ide-ci = { path = '../ci-build/ci_utils' }
[workspace.dependencies]
tokio = { version = "=1.20.1", features = ["full", "tracing"] }
console-subscriber = "=0.1.7"
nix = "=0.24.1" # DO NOT BUMP UNTIL NIGHTLY IS UPDATED. Otherwise, it brings too new libc.

View File

@ -34,7 +34,7 @@ ide-view = { path = "view" }
ide-view-component-group = { path = "view/component-browser/component-group" }
engine-protocol = { path = "controller/engine-protocol" }
json-rpc = { path = "../../lib/rust/json-rpc" }
parser = { path = "language/parser" }
parser-scala = { path = "language/parser" }
span-tree = { path = "language/span-tree" }
bimap = { version = "0.4.0" }
console_error_panic_hook = { version = "0.1.6" }

View File

@ -3,6 +3,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(missing_docs)]

View File

@ -3,6 +3,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(trivial_casts)]

View File

@ -10,7 +10,7 @@ crate-type = ["cdylib", "rlib"]
[dependencies]
ast = { version = "0.1.0", path = "../../language/ast/impl" }
engine-protocol = { version = "0.1.0", path = "../engine-protocol" }
parser = { version = "0.1.0", path = "../../language/parser" }
parser-scala = { version = "0.1.0", path = "../../language/parser" }
enso-data-structures = { path = "../../../../lib/rust/data-structures" }
enso-logger = { path = "../../../../lib/rust/logger" }
enso-prelude = { path = "../../../../lib/rust/prelude" }

View File

@ -54,7 +54,7 @@ impl IdentifierUsage {
/// Says whether the identifier occurrence introduces it into scope or uses it from scope.
#[allow(missing_docs)]
#[derive(Clone, Copy, Debug, Display, PartialEq)]
#[derive(Clone, Copy, Debug, Display, PartialEq, Eq)]
pub enum OccurrenceKind {
Used,
Introduced,
@ -63,7 +63,7 @@ pub enum OccurrenceKind {
/// If the current context in the AST processor is a pattern context.
// TODO [mwu] Refer to the specification once it is merged.
#[allow(missing_docs)]
#[derive(Clone, Copy, Debug, Display, PartialEq)]
#[derive(Clone, Copy, Debug, Display, PartialEq, Eq)]
pub enum Context {
NonPattern,
Pattern,
@ -388,7 +388,7 @@ mod tests {
}
/// Runs the test for the given test case description.
fn run_case(parser: &parser::Parser, case: Case) {
fn run_case(parser: &parser_scala::Parser, case: Case) {
DEBUG!("\n===========================================================================\n");
DEBUG!("Case: " case.code);
let ast = parser.parse_line_ast(&case.code).unwrap();
@ -399,7 +399,7 @@ mod tests {
}
/// Runs the test for the test case expressed using markdown notation. See `Case` for details.
fn run_markdown_case(parser: &parser::Parser, marked_code: impl AsRef<str>) {
fn run_markdown_case(parser: &parser_scala::Parser, marked_code: impl AsRef<str>) {
DEBUG!("Running test case for " marked_code.as_ref());
let case = Case::from_markdown(marked_code.as_ref());
run_case(parser, case)
@ -407,7 +407,7 @@ mod tests {
#[wasm_bindgen_test]
fn test_alias_analysis() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let test_cases = [
"»foo«",
"«five» = 5",

View File

@ -19,7 +19,7 @@ use ast::crumbs::Crumbs;
// ================
/// A connection endpoint.
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Endpoint {
/// Id of the node where the endpoint is located.
pub node: Id,
@ -61,7 +61,7 @@ pub type Destination = Endpoint;
/// Describes a connection between two endpoints: from `source` to `destination`.
#[allow(missing_docs)]
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Connection {
pub source: Source,
pub destination: Destination,
@ -159,7 +159,7 @@ mod tests {
use ast::crumbs;
use ast::crumbs::InfixCrumb;
use parser::Parser;
use parser_scala::Parser;
struct TestRun {
graph: GraphInfo,

View File

@ -11,7 +11,7 @@ use ast::crumbs::InfixCrumb;
use ast::crumbs::Located;
use ast::known;
use ast::opr;
use parser::Parser;
use parser_scala::Parser;
@ -91,7 +91,7 @@ pub struct CannotFindChild(Crumb);
// =================
/// Describes the kind of code block (scope) to which definition can belong.
#[derive(Clone, Copy, Debug, PartialEq)]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum ScopeKind {
/// Module scope is a file's top-level block.
Root,
@ -594,7 +594,7 @@ mod tests {
#[wasm_bindgen_test]
fn definition_name_tests() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let ast = parser.parse_line_ast("Foo.Bar.baz").unwrap();
let name = DefinitionName::from_ast(&ast).unwrap();
@ -609,14 +609,14 @@ mod tests {
#[wasm_bindgen_test]
fn definition_name_rejecting_incomplete_names() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let ast = parser.parse_line_ast("Foo. .baz").unwrap();
assert!(DefinitionName::from_ast(&ast).is_none());
}
#[wasm_bindgen_test]
fn definition_info_name() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let ast = parser.parse_line_ast("Foo.bar a b c = baz").unwrap();
let definition = DefinitionInfo::from_root_line_ast(&ast).unwrap();
@ -626,7 +626,7 @@ mod tests {
#[wasm_bindgen_test]
fn located_definition_args() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let ast = parser.parse_line_ast("foo bar baz = a + b + c").unwrap();
let definition = DefinitionInfo::from_root_line_ast(&ast).unwrap();
let (arg0, arg1) = definition.args.expect_tuple();
@ -668,7 +668,7 @@ mod tests {
#[wasm_bindgen_test]
fn list_definition_test() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
// TODO [mwu]
// Due to a parser bug, extension methods defining operators cannot be currently
@ -723,7 +723,7 @@ mod tests {
("foo = bar\n\nmain = bar", 2),
];
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let main_id = Id::new_plain_name("main");
for (program, expected_line_index) in program_to_expected_main_pos {
let module = parser.parse_module(program, default()).unwrap();
@ -749,19 +749,19 @@ main =
add foo bar";
let module = parser::Parser::new_or_panic().parse_module(program, default()).unwrap();
let module = parser_scala::Parser::new_or_panic().parse_module(program, default()).unwrap();
let check_def = |id, expected_body| {
let definition = module::get_definition(&module, &id).unwrap();
assert_eq!(definition.body().repr(), expected_body);
};
let check_not_found = |id| assert!(module::get_definition(&module, &id).is_err());
check_def(Id::new_plain_names(&["main", "add"]), "a + b");
check_def(Id::new_plain_names(&["main", "baz"]), "\n subbaz arg = 4");
check_def(Id::new_plain_names(&["main", "baz", "subbaz"]), "4");
check_def(Id::new_plain_names(["main", "add"]), "a + b");
check_def(Id::new_plain_names(["main", "baz"]), "\n subbaz arg = 4");
check_def(Id::new_plain_names(["main", "baz", "subbaz"]), "4");
// Node are not definitions
check_not_found(Id::new_plain_names(&["main", "foo"]));
check_not_found(Id::new_plain_names(&["main", "baz2", "subbaz2"]));
check_not_found(Id::new_plain_names(["main", "foo"]));
check_not_found(Id::new_plain_names(["main", "baz2", "subbaz2"]));
}
}

View File

@ -214,14 +214,14 @@ mod tests {
wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser);
/// Takes a program with main definition in root and returns main's graph.
fn main_graph(parser: &parser::Parser, program: impl Str) -> GraphInfo {
fn main_graph(parser: &parser_scala::Parser, program: impl Str) -> GraphInfo {
let module = parser.parse_module(program.into(), default()).unwrap();
let name = DefinitionName::new_plain("main");
let main = module.def_iter().find_by_name(&name).unwrap();
GraphInfo::from_definition(main.item)
}
fn find_graph(parser: &parser::Parser, program: impl Str, name: impl Str) -> GraphInfo {
fn find_graph(parser: &parser_scala::Parser, program: impl Str, name: impl Str) -> GraphInfo {
let module = parser.parse_module(program.into(), default()).unwrap();
let crumbs = name.into().split('.').map(DefinitionName::new_plain).collect();
let id = Id { crumbs };
@ -231,7 +231,7 @@ mod tests {
#[wasm_bindgen_test]
fn detect_a_node() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
// Each of these programs should have a `main` definition with a single `2+2` node.
let programs = vec![
"main = 2+2",
@ -249,7 +249,7 @@ mod tests {
}
}
fn new_expression_node(parser: &parser::Parser, expression: &str) -> NodeInfo {
fn new_expression_node(parser: &parser_scala::Parser, expression: &str) -> NodeInfo {
let node_ast = parser.parse(expression.to_string(), default()).unwrap();
let line_ast = expect_single_line(&node_ast).clone();
NodeInfo::from_main_line_ast(&line_ast).unwrap()
@ -274,7 +274,7 @@ mod tests {
#[wasm_bindgen_test]
fn add_node_to_graph_with_single_line() {
let program = "main = print \"hello\"";
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let mut graph = main_graph(&parser, program);
let nodes = graph.nodes();
assert_eq!(nodes.len(), 1);
@ -301,7 +301,7 @@ mod tests {
foo = node
foo a = not_node
print "hello""#;
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let mut graph = main_graph(&parser, program);
let node_to_add0 = new_expression_node(&parser, "4 + 4");
@ -360,7 +360,7 @@ mod tests {
node2
foo = 5";
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let mut graph = main_graph(&parser, program);
let id2 = graph.nodes()[0].id();
@ -388,7 +388,7 @@ foo = 5";
#[wasm_bindgen_test]
fn multiple_node_graph() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let program = r"
main =
## Faux docstring
@ -419,7 +419,7 @@ main =
#[wasm_bindgen_test]
fn removing_node_from_graph() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let program = r"
main =
foo = 2 + 2
@ -445,7 +445,7 @@ main =
#[wasm_bindgen_test]
fn removing_last_node_from_graph() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let program = r"
main =
foo = 2 + 2";
@ -465,7 +465,7 @@ main =
#[wasm_bindgen_test]
fn editing_nodes_expression_in_graph() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let program = r"
main =
foo = 2 + 2

View File

@ -9,6 +9,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(missing_docs)]
@ -205,7 +206,7 @@ mod tests {
use crate::definition::DefinitionProvider;
use ast::macros::DocumentationCommentInfo;
use parser::Parser;
use parser_scala::Parser;
/// Expect `main` method, where first line is a documentation comment.
@ -230,7 +231,7 @@ mod tests {
#[wasm_bindgen_test]
fn parse_single_line_comment() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
// Typical single line case.
let code = r#"
@ -267,7 +268,7 @@ main =
#[wasm_bindgen_test]
fn parse_multi_line_comment() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let code = r#"
main =
## First line

View File

@ -573,7 +573,7 @@ impl Info {
// TODO [mwu]
// Ideally we should not require parser but should use some sane way of generating AST from
// the `ImportInfo` value.
pub fn add_import(&mut self, parser: &parser::Parser, to_add: ImportInfo) -> usize {
pub fn add_import(&mut self, parser: &parser_scala::Parser, to_add: ImportInfo) -> usize {
// Find last import that is not "after" the added one lexicographically.
let previous_import =
self.enumerate_imports().take_while(|(_, import)| to_add.target > import.target).last();
@ -588,7 +588,7 @@ impl Info {
pub fn add_module_import(
&mut self,
here: &QualifiedName,
parser: &parser::Parser,
parser: &parser_scala::Parser,
to_add: &QualifiedName,
) {
let is_here = to_add == here;
@ -648,7 +648,7 @@ impl Info {
&mut self,
method: definition::ToAdd,
location: Placement,
parser: &parser::Parser,
parser: &parser_scala::Parser,
) -> FallibleResult {
let no_indent = 0;
let definition_ast = method.ast(no_indent, parser)?;
@ -687,7 +687,7 @@ impl From<known::Module> for Info {
// =================
/// Structure describing where to place something being added to the module.
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum Placement {
/// Place at the beginning of the module.
Begin,
@ -878,7 +878,7 @@ mod tests {
#[wasm_bindgen_test]
fn import_listing() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let expect_imports = |code: &str, expected: &[&[&str]]| {
let ast = parser.parse_module(code, default()).unwrap();
let info = Info { ast };
@ -901,7 +901,7 @@ mod tests {
#[wasm_bindgen_test]
fn import_adding_and_removing() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let code = "import Foo.Bar.Baz";
let ast = parser.parse_module(code, default()).unwrap();
let mut info = Info { ast };
@ -930,7 +930,7 @@ mod tests {
#[wasm_bindgen_test]
fn implicit_method_resolution() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let module_name =
QualifiedName::from_all_segments(&["local", "ProjectName", "Main"]).unwrap();
let expect_find = |method: &MethodPointer, code, expected: &definition::Id| {
@ -1002,7 +1002,7 @@ other def =
last def = inline expression";
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let module = parser.parse_module(code, default()).unwrap();
let module = Info { ast: module };
@ -1014,14 +1014,14 @@ last def = inline expression";
let span = definition_span(&module.ast, &id).unwrap();
assert!(code[span].ends_with("inline expression"));
let id = definition::Id::new_plain_names(&["other", "nested"]);
let id = definition::Id::new_plain_names(["other", "nested"]);
let span = definition_span(&module.ast, &id).unwrap();
assert!(code[span].ends_with("nested body"));
}
#[wasm_bindgen_test]
fn add_method() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let module = r#"Main.method1 arg = body
main = Main.method1 10"#;

View File

@ -17,7 +17,7 @@ use crate::node::NodeInfo;
use ast::crumbs::Located;
use ast::BlockLine;
use parser::Parser;
use parser_scala::Parser;
use std::collections::BTreeSet;

View File

@ -185,7 +185,7 @@ mod test {
use ast::HasIdMap;
use enso_prelude::default;
use parser::Parser;
use parser_scala::Parser;
use uuid::Uuid;
/// A sample text edit used to test "text api" properties.
@ -266,9 +266,10 @@ mod test {
/// Pretty prints the code of module with a single function named `main`. The lines should
/// contain unindented main function's block lines.
fn to_main(lines: impl IntoIterator<Item: AsRef<str>>) -> String {
use std::fmt::Write;
let mut ret = "main = ".to_string();
for line in lines {
ret.push_str(&format!("\n {}", line.as_ref()))
write!(ret, "\n {}", line.as_ref()).unwrap();
}
ret
}

View File

@ -1,6 +1,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]

View File

@ -35,12 +35,12 @@ wasm-bindgen-test = { version = "0.3.8" }
enso-web = { path = "../../../../lib/rust/web" }
[build-dependencies]
enso-build-utilities = { path = "../../../../build/build-utils" }
bytes = { version = "0.5.4" }
enso-build-utilities = { path = "../../../../build/deprecated/build-utils" }
bytes = { version = "1.1.0" }
flatc-rust = { version = "0.1.2" }
futures = { version = "0.3.1" }
reqwest = { version = "0.10.1" }
tokio = { version = "0.2.10", features = ["macros"] }
reqwest = { version = "0.11.12" }
tokio = { workspace = true }
# Zip is needed because the build script downloads and extracts artifacts from the Engine.
zip = { version = "0.5.0" }
zip-extensions = { version = "0.4.0" }
zip = { version = "0.6.2" }
zip-extensions = { version = "0.6.1" }

View File

@ -39,7 +39,7 @@ pub type RpcError = json_rpc::error::RpcError<ErrorPayload>;
// ====================
/// The notifications that binary protocol client may receive.
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum Notification {
/// A new data has been sent for a visualization.
VisualizationUpdate {

View File

@ -63,7 +63,7 @@ impl<T> MessageFromServer<T> {
/// Identifies the visualization in the update message.
#[allow(missing_docs)]
#[derive(Clone, Debug, Copy, PartialEq)]
#[derive(Clone, Debug, Copy, PartialEq, Eq)]
pub struct VisualisationContext {
pub visualization_id: Uuid,
pub context_id: Uuid,
@ -77,7 +77,7 @@ pub enum ErrorPayload {
}
#[allow(missing_docs)]
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct FileSegment {
pub path: LSPath,
pub byte_offset: u64,
@ -85,7 +85,7 @@ pub struct FileSegment {
}
#[allow(missing_docs)]
#[derive(Clone, Debug, Default, PartialEq)]
#[derive(Clone, Debug, Default, PartialEq, Eq)]
pub struct EnsoDigest {
pub bytes: Vec<u8>,
}
@ -97,7 +97,7 @@ pub struct EnsoDigest {
// ================
#[allow(missing_docs)]
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum ToServerPayloadOwned {
InitSession { client_id: Uuid },
WriteFile { path: LSPath, contents: Vec<u8> },

View File

@ -108,7 +108,7 @@ impl Path {
// ====================
/// Notification generated by the Language Server.
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize, IntoStaticStr)]
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize, IntoStaticStr, Eq)]
#[serde(tag = "method", content = "params")]
pub enum Notification {
/// Filesystem event occurred for a watched path.
@ -162,7 +162,7 @@ pub enum Notification {
/// Sent from the server to the client to inform about a failure during execution of an execution
/// context.
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize, Eq)]
#[allow(missing_docs)]
#[serde(rename_all = "camelCase")]
pub struct ExecutionFailed {
@ -171,7 +171,7 @@ pub struct ExecutionFailed {
}
/// Sent from server to the client to inform about a failure during execution of a visualisation.
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize, Eq)]
#[allow(missing_docs)]
#[serde(rename_all = "camelCase")]
pub struct VisualisationEvaluationFailed {
@ -190,7 +190,7 @@ pub struct VisualisationEvaluationFailed {
/// Sent from the server to the client to inform about new information for certain expressions
/// becoming available.
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize, Eq)]
#[allow(missing_docs)]
#[serde(rename_all = "camelCase")]
pub struct ExpressionUpdates {
@ -199,7 +199,7 @@ pub struct ExpressionUpdates {
}
/// An update about the computed expression.
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize, Eq)]
#[allow(missing_docs)]
#[serde(rename_all = "camelCase")]
pub struct ExpressionUpdate {
@ -214,7 +214,7 @@ pub struct ExpressionUpdate {
/// Profiling information on an executed expression. It is implemented as a union as additional
/// types of information will be added in the future.
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize, Eq)]
#[allow(missing_docs)]
// Not sure what the future variants will be, and implementing Copy is not essential for this.
#[allow(missing_copy_implementations)]
@ -223,7 +223,7 @@ pub enum ProfilingInfo {
ExecutionTime { nano_time: u64 },
}
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize, Eq)]
#[allow(missing_docs)]
#[serde(tag = "type")]
pub enum ExpressionUpdatePayload {
@ -251,7 +251,7 @@ pub enum ExpressionUpdatePayload {
// =======================
/// Sent from the server to the client to inform about a status of execution.
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize, Eq)]
#[allow(missing_docs)]
#[serde(rename_all = "camelCase")]
pub struct ExecutionStatus {
@ -260,7 +260,7 @@ pub struct ExecutionStatus {
}
/// The type of diagnostic message.
#[derive(Clone, Copy, Debug, Deserialize, PartialEq, Serialize)]
#[derive(Clone, Copy, Debug, Deserialize, PartialEq, Serialize, Eq)]
#[allow(missing_docs)]
pub enum DiagnosticType {
Error,
@ -276,7 +276,7 @@ pub enum DiagnosticType {
// a builtin node. Then, to locate the error in the code, you can use the stack field with a stack
// trace to find the first element with non-empty location (as the head of the stack will point to
// the builtin element).
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize, Eq)]
#[allow(missing_docs)]
#[serde(rename_all = "camelCase")]
pub struct Diagnostic {
@ -290,7 +290,7 @@ pub struct Diagnostic {
/// The frame of the stack trace. If the error refer to a builtin node, the path and location fields
/// will be empty.
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
#[derive(Clone, Debug, Deserialize, PartialEq, Serialize, Eq)]
#[allow(missing_docs)]
#[serde(rename_all = "camelCase")]
pub struct StackTraceElement {
@ -308,7 +308,7 @@ pub struct StackTraceElement {
// === FileEvent ===
/// The `file/event` notification parameters.
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, Eq)]
#[derive(Serialize, Deserialize)]
#[allow(missing_docs)]
pub struct FileEvent {
@ -317,7 +317,7 @@ pub struct FileEvent {
}
/// Describes kind of filesystem event (was the file created or deleted, etc.)
#[derive(Clone, Copy, Debug, PartialEq)]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[derive(Serialize, Deserialize)]
#[allow(missing_docs)]
pub enum FileEventKind {

View File

@ -11,6 +11,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(missing_docs)]

View File

@ -90,7 +90,7 @@ trait API {
// =============
/// Address consisting of host and port.
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct IpWithSocket {
/// Host name.
pub host: String,
@ -131,7 +131,7 @@ impl From<ProjectName> for String {
}
/// Project information, such as name, its id and last time it was opened.
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ProjectMetadata {
/// Project's name.
@ -164,14 +164,14 @@ pub mod response {
use super::*;
/// Response of `list_projects` and `list_samples`.
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct ProjectList {
/// List of projects.
pub projects: Vec<ProjectMetadata>,
}
/// Response of `create_project`.
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq)]
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct CreateProject {
/// Created project uuid.
@ -179,7 +179,7 @@ pub mod response {
}
/// Response of `open_project`.
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct OpenProject {
/// The version of the started language server represented by a semver version string.

View File

@ -1,6 +1,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]

View File

@ -17,6 +17,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![deny(unconditional_recursion)]

View File

@ -34,6 +34,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![deny(unconditional_recursion)]

View File

@ -5,6 +5,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![deny(unconditional_recursion)]

View File

@ -12,7 +12,7 @@ use regex::Regex;
/// Operator associativity.
#[allow(missing_docs)]
#[derive(Clone, Copy, Debug, PartialEq)]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Assoc {
Left,
Right,

View File

@ -26,7 +26,7 @@ use serde::Serializer;
/// Provides `Deref` implementation that allows accessing underlying shape `T` value.
#[derive(CloneRef, Derivative)]
#[derivative(Clone(bound = ""))]
#[derive(Debug, Eq, PartialEq)]
#[derive(Debug, PartialEq, Eq)]
pub struct KnownAst<T> {
ast: Ast,
phantom: PhantomData<T>,

View File

@ -1,12 +1,12 @@
// === Features ===
#![feature(associated_type_bounds)]
#![feature(bool_to_option)]
#![feature(generators, generator_trait)]
#![feature(trivial_bounds)]
#![feature(type_alias_impl_trait)]
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
use crate::prelude::*;
@ -950,7 +950,7 @@ pub struct Modified<T> {
// === Tokenizer ===
/// An enum of valid Ast tokens.
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum Token<'a> {
Off(usize),
Chr(char),
@ -1862,7 +1862,7 @@ mod tests {
let ab = Ast::prefix(a, b);
let abc = Ast::prefix(ab, c); // repr is `a b c`
assert_eq!((&abc).iter().count(), 2); // for App's two children
assert_eq!((abc).iter().count(), 2); // for App's two children
assert_eq!(abc.iter_recursive().count(), 5); // for 2 Apps and 3 Vars
}

View File

@ -3,6 +3,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(missing_docs)]

View File

@ -1,5 +1,5 @@
[package]
name = "parser"
name = "parser-scala"
version = "0.1.0"
authors = ["Enso Team <contact@enso.org>"]
edition = "2021"
@ -31,11 +31,11 @@ wasm-bindgen = { version = "0.2.78" }
wasm-bindgen-test = { version = "0.3.8" }
[build-dependencies]
enso-build-utilities = { path = "../../../../build/build-utils" }
bytes = { version = "0.5.4" }
ide-ci = { path = "../../../../build/ci_utils" }
bytes = { version = "1.1.0" }
futures = { version = "0.3.1" }
reqwest = { version = "0.10.1" }
tokio = { version = "0.2.10", features = ["macros"] }
reqwest = { version = "0.11.12" }
tokio = { workspace = true }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
websocket = "0.23.0"

View File

@ -5,15 +5,7 @@
// === Features ===
#![feature(option_result_contains)]
use std::io::prelude::*;
use enso_build_utilities::absolute_path;
use enso_build_utilities::targeting_wasm;
use enso_build_utilities::PathRef;
use std::fs;
use std::fs::create_dir_all;
use std::fs::File;
use std::path::PathBuf;
use ide_ci::prelude::*;
@ -49,7 +41,7 @@ pub fn parser_url(version: &ParserVersion) -> reqwest::Url {
// ===================
/// Parser version described as commit hash from `enso` repository.
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct ParserVersion {
pub commit: String,
}
@ -85,60 +77,40 @@ struct ParserProvider {
impl ParserProvider {
/// Creates a provider that obtains given parser version to a given path.
pub fn new(version: ParserVersion, parser_path: impl PathRef) -> ParserProvider {
pub fn new(version: ParserVersion, parser_path: impl AsRef<Path>) -> ParserProvider {
let parser_path = PathBuf::from(parser_path.as_ref());
ParserProvider { version, parser_path }
}
/// Downloads contents of JS parser into memory.
pub async fn download(&self) -> bytes::Bytes {
pub async fn download(&self) -> Result<Bytes> {
let url = parser_url(&self.version);
let get_error = format!("Failed to get response from {}.", url);
let download_error = format!("Failed to download contents of {}.", url);
let server_error = format!("Server replied with error when getting {}.", url);
let response = reqwest::get(url).await.expect(&get_error);
let response = response.error_for_status().expect(&server_error);
response.bytes().await.expect(&download_error)
ide_ci::io::download_all(url.clone()).await.context("Failed to download the parser.")
}
/// Stores JS parser into file, after patching with a `PARSER_PREAMBLE`.
pub fn patch_and_store(&self, js_parser: bytes::Bytes) {
let display_path = self.parser_path.display();
let open_error = format!("Failed to open {}.", display_path);
let write_error = format!("Failed to write {}.", display_path);
let flush_error = format!("Failed to flush {}.", display_path);
let mut file = File::create(&self.parser_path).expect(&open_error);
file.write_all(PARSER_PREAMBLE.as_bytes()).expect(&write_error);
file.write_all(&js_parser).expect(&write_error);
file.flush().expect(&flush_error);
}
/// Ensures that target's parent directory exists.
pub fn prepare_target_location(&self) {
let parent_directory =
self.parser_path.parent().expect("Unable to access parent directory.");
let create_dir_error =
format!("Failed to create directory: {}.", parent_directory.display());
create_dir_all(parent_directory).expect(&create_dir_error);
pub async fn patch_and_store(&self, js_parser: bytes::Bytes) -> Result {
ide_ci::fs::tokio::write_iter(&self.parser_path, [
PARSER_PREAMBLE.as_bytes(),
js_parser.as_ref(),
])
.await
}
/// Places required parser version in the target location.
pub async fn run(&self) {
self.prepare_target_location();
let parent_directory =
self.parser_path.parent().expect("Unable to access parent directory.");
let fingerprint = parent_directory.join("parser.fingerprint");
let opt_version = fs::read_to_string(&fingerprint);
pub async fn run(&self) -> Result {
let fingerprint = self.parser_path.with_file_name("parser.fingerprint");
let opt_version = ide_ci::fs::tokio::read_to_string(&fingerprint).await;
let changed = match opt_version {
Err(_) => true,
Ok(hash) => hash != PARSER_COMMIT,
};
if changed {
let parser_js = self.download().await;
self.patch_and_store(parser_js);
fs::write(&fingerprint, PARSER_COMMIT).expect("Unable to write parser fingerprint.");
let parser_js = self.download().await?;
self.patch_and_store(parser_js).await?;
ide_ci::fs::tokio::write(&fingerprint, PARSER_COMMIT).await?;
}
Ok(())
}
}
@ -149,12 +121,12 @@ impl ParserProvider {
// ==========
#[tokio::main]
async fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
if targeting_wasm() {
async fn main() -> Result {
if ide_ci::programs::cargo::build_env::targeting_wasm() {
let required_version = ParserVersion::required();
let parser_path = absolute_path(PARSER_PATH)?;
let parser_path = Path::new(PARSER_PATH).absolutize()?;
let provider = ParserProvider::new(required_version, &parser_path);
provider.run().await;
provider.run().await?;
}
println!("cargo:rerun-if-changed=build.rs");
println!("cargo:rerun-if-changed={}", PARSER_PATH);

View File

@ -1,6 +1,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
use enso_prelude::*;
@ -15,7 +16,7 @@ fn main() {
let program = std::env::args().nth(1).unwrap_or(default_input);
DEBUG!("Will parse: " program);
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let output = parser.parse(program, default());
match output {
Ok(result) => DEBUG!("Parser responded with: {result:?}"),
@ -27,7 +28,7 @@ fn main() {
let program = std::env::args().nth(1).unwrap_or(default_input);
DEBUG!("Will parse: " program);
let parser = parser::DocParser::new_or_panic();
let parser = parser_scala::DocParser::new_or_panic();
let output = parser.generate_html_docs(program);
match output {
Ok(result) => DEBUG!("Doc parser responded with: {result:?}"),
@ -39,7 +40,7 @@ fn main() {
let program = std::env::args().nth(1).unwrap_or(default_input);
DEBUG!("Will parse: " program);
let parser = parser::DocParser::new_or_panic();
let parser = parser_scala::DocParser::new_or_panic();
let output = parser.generate_html_doc_pure(program);
match output {
Ok(result) => DEBUG!("Doc parser responded with: {result:?}"),

View File

@ -9,6 +9,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(missing_docs)]

View File

@ -10,7 +10,7 @@
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
use parser::prelude::*;
use parser_scala::prelude::*;
use ast::opr;
use ast::opr::GeneralizedInfix;
@ -25,7 +25,7 @@ wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser);
#[wasm_bindgen_test]
pub fn to_assignment_test() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let is_assignment = |code: &str| {
let ast = parser.parse(code.to_string(), default()).unwrap();
let line = expect_single_line(&ast);
@ -45,7 +45,7 @@ pub fn to_assignment_test() {
#[wasm_bindgen_test]
pub fn generalized_infix_test() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let make_gen_infix = |code: &str| {
let ast = parser.parse(code.to_string(), default()).unwrap();
let line = expect_single_line(&ast);
@ -83,7 +83,7 @@ pub fn flatten_prefix_test() {
})
}
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let case = |code: &str, expected_pieces: Vec<&str>| {
let ast = parser.parse(code.into(), default()).unwrap();
let ast = ast::test_utils::expect_single_line(&ast);
@ -110,7 +110,7 @@ pub fn flatten_infix_test() {
})
}
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let case = |code: &str, target: &str, expected_pieces: Vec<&str>| {
let ast = parser.parse(code.into(), default()).unwrap();
let ast = ast::test_utils::expect_single_line(&ast);

View File

@ -16,7 +16,7 @@ wasm_bindgen_test_configure!(run_in_browser);
fn no_doc_found() {
let input = String::from("type Foo\n type Bar");
let program = std::env::args().nth(1).unwrap_or(input);
let parser = parser::DocParser::new_or_panic();
let parser = parser_scala::DocParser::new_or_panic();
let gen_code = parser.generate_html_docs(program).unwrap();
// gen_code should be empty.
assert_eq!(gen_code.len(), 22, "Generated length differs from the expected\"{}\"", gen_code);
@ -24,7 +24,7 @@ fn no_doc_found() {
#[wasm_bindgen_test]
fn extension_operator_methods() {
let ast = parser::Parser::new_or_panic().parse_line_ast("Int.+").unwrap();
let ast = parser_scala::Parser::new_or_panic().parse_line_ast("Int.+").unwrap();
use ast::*;
if let Shape::Infix(Infix { larg: _larg, loff: _loff, opr, roff: _roff, rarg }, ..) =

View File

@ -6,7 +6,7 @@ use enso_prelude::*;
use ast::crumbs::Crumbable;
use ast::HasRepr;
use parser::Parser;
use parser_scala::Parser;
use wasm_bindgen_test::wasm_bindgen_test;
use wasm_bindgen_test::wasm_bindgen_test_configure;

View File

@ -2,7 +2,7 @@
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
use parser::DocParser;
use parser_scala::DocParser;
use wasm_bindgen_test::wasm_bindgen_test;
use wasm_bindgen_test::wasm_bindgen_test_configure;

View File

@ -2,10 +2,10 @@
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
use parser::prelude::*;
use parser_scala::prelude::*;
use ast::HasIdMap;
use parser::Parser;
use parser_scala::Parser;
use wasm_bindgen_test::wasm_bindgen_test;
use wasm_bindgen_test::wasm_bindgen_test_configure;

View File

@ -2,9 +2,9 @@
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
use parser::prelude::*;
use parser_scala::prelude::*;
use parser::Parser;
use parser_scala::Parser;
use wasm_bindgen_test::wasm_bindgen_test;
use wasm_bindgen_test::wasm_bindgen_test_configure;

View File

@ -5,11 +5,11 @@
#![warn(unsafe_code)]
use ast::*;
use parser::prelude::*;
use parser_scala::prelude::*;
use ast::test_utils::expect_shape;
use parser::api::Metadata;
use parser::api::ParsedSourceFile;
use parser_scala::api::Metadata;
use parser_scala::api::ParsedSourceFile;
use serde::de::DeserializeOwned;
use serde::Deserialize;
use serde::Serialize;
@ -40,13 +40,13 @@ fn assert_opr<StringLike: Into<String>>(ast: &Ast, name: StringLike) {
assert_eq!(*actual, expected);
}
fn roundtrip_program_with(parser: &parser::Parser, program: &str) {
fn roundtrip_program_with(parser: &parser_scala::Parser, program: &str) {
let ast = parser.parse(program.to_string(), Default::default()).unwrap();
assert_eq!(ast.repr(), program, "{:#?}", ast);
}
fn roundtrip_program(program: &str) {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
roundtrip_program_with(&parser, program);
}
@ -71,7 +71,7 @@ impl<T: Default + Serialize + DeserializeOwned> Metadata for FauxMetadata<T> {}
/// Persists parser (which is expensive to construct, so we want to reuse it
/// between tests. Additionally, hosts a number of helper methods.
struct Fixture {
parser: parser::Parser,
parser: parser_scala::Parser,
}
impl Fixture {
@ -79,7 +79,7 @@ impl Fixture {
/// Create a new fixture, obtaining a default parser.
fn new() -> Fixture {
Fixture { parser: parser::Parser::new_or_panic() }
Fixture { parser: parser_scala::Parser::new_or_panic() }
}
/// Program is expected to be single line module. The line's Shape subtype
@ -151,7 +151,7 @@ impl Fixture {
fn deserialize_blank(&mut self) {
let expect_blank = |_: &Blank| {};
let _ast = self.test_shape("_", expect_blank);
self.test_shape("_", expect_blank);
}
fn deserialize_var(&mut self) {
@ -490,7 +490,7 @@ fn block_roundtrip() {
/// Test case for https://github.com/enso-org/ide/issues/296
#[wasm_bindgen_test]
fn nested_macros() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
// Generate nested brackets. Stop at 8 because it gets slower and slower.
// At 12 the deserialization fails on WASM.
@ -532,7 +532,7 @@ fn dealing_with_invalid_metadata() {
let serialized_text_metadata = serde_json::to_string(&metadata).unwrap();
assert!(serde_json::from_str::<FauxMetadata<i32>>(&serialized_text_metadata).is_err());
let parsed_file = parser::api::ParsedSourceFile { ast, metadata };
let parsed_file = parser_scala::api::ParsedSourceFile { ast, metadata };
let generated = parsed_file.serialize().unwrap();
let expected_generated = r#"variable1

View File

@ -5,8 +5,8 @@
use enso_prelude::*;
use ast::Ast;
use parser::api::ParsedSourceFile;
use parser::Parser;
use parser_scala::api::ParsedSourceFile;
use parser_scala::Parser;
use uuid::Uuid;
use wasm_bindgen_test::wasm_bindgen_test;
use wasm_bindgen_test::wasm_bindgen_test_configure;

View File

@ -13,5 +13,5 @@ enso-profiler = { path = "../../../../lib/rust/profiler" }
failure = { version = "0.1.6" }
[dev-dependencies]
parser = { path = "../parser" }
parser-scala = { path = "../parser" }
wasm-bindgen-test = { version = "0.3.8" }

View File

@ -1,6 +1,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
use ast::crumbs::PatternMatchCrumb::*;

View File

@ -239,7 +239,7 @@ mod test {
use crate::SpanTree;
use ast::HasRepr;
use parser::Parser;
use parser_scala::Parser;
use wasm_bindgen_test::wasm_bindgen_test;
#[wasm_bindgen_test]

View File

@ -626,7 +626,7 @@ mod test {
use ast::crumbs::SectionSidesCrumb;
use ast::Crumbs;
use ast::IdMap;
use parser::Parser;
use parser_scala::Parser;
use wasm_bindgen_test::wasm_bindgen_test;
use wasm_bindgen_test::wasm_bindgen_test_configure;

View File

@ -15,6 +15,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(missing_docs)]

View File

@ -383,7 +383,7 @@ impl<'a> IntoIterator for &'a Crumbs {
type Item = &'a Crumb;
type IntoIter = std::slice::Iter<'a, Crumb>;
fn into_iter(self) -> Self::IntoIter {
(&*self.vec).iter()
(*self.vec).iter()
}
}

View File

@ -23,7 +23,7 @@ use double_representation::node::MainLine;
use double_representation::node::NodeInfo;
use double_representation::node::NodeLocation;
use engine_protocol::language_server;
use parser::Parser;
use parser_scala::Parser;
use span_tree::action::Action;
use span_tree::action::Actions;
use span_tree::generate::context::CalledMethodInfo;
@ -395,7 +395,7 @@ impl EndpointInfo {
}
/// Iterates over sibling ports located after this endpoint in its chain.
pub fn chained_ports_after<'a>(&'a self) -> impl Iterator<Item = PortRef> + 'a {
pub fn chained_ports_after(&self) -> impl Iterator<Item = PortRef> + '_ {
let parent_port = self.parent_chain_port();
let ports_after = parent_port.map(move |parent_port| {
parent_port
@ -993,7 +993,7 @@ pub mod tests {
use double_representation::project;
use engine_protocol::language_server::MethodPointer;
use enso_text::index::*;
use parser::Parser;
use parser_scala::Parser;
use wasm_bindgen_test::wasm_bindgen_test;
@ -1238,7 +1238,7 @@ main =
bar b = 5
print foo"
.into();
test.data.graph_id = definition::Id::new_plain_names(&["main", "foo"]);
test.data.graph_id = definition::Id::new_plain_names(["main", "foo"]);
test.run(|graph| async move {
let expression = "new_node";
graph.add_node(NewNodeInfo::new_pushed_back(expression)).unwrap();
@ -1346,7 +1346,7 @@ main =
// Not using multi-line raw string literals, as we don't want IntelliJ to automatically
// strip the trailing whitespace in the lines.
test.data.code = "main =\n foo a =\n bar b = 5\n print foo".into();
test.data.graph_id = definition::Id::new_plain_names(&["main", "foo", "bar"]);
test.data.graph_id = definition::Id::new_plain_names(["main", "foo", "bar"]);
test.run(|graph| async move {
let expression = "new_node";
graph.add_node(NewNodeInfo::new_pushed_back(expression)).unwrap();

View File

@ -52,7 +52,7 @@ pub struct NoResolvedMethod(double_representation::node::Id);
/// Notification about change in the executed graph.
///
/// It may pertain either the state of the graph itself or the notifications from the execution.
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum Notification {
/// The notification passed from the graph controller.
Graph(controller::graph::Notification),
@ -376,7 +376,7 @@ pub mod tests {
impl MockData {
pub fn controller(&self) -> Handle {
let logger = Logger::new("test");
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let repository = Rc::new(model::undo_redo::Repository::new(&logger));
let module = self.module.plain(&parser, repository);
let method = self.graph.method();

View File

@ -8,7 +8,7 @@ use crate::prelude::*;
use crate::notification;
use mockall::automock;
use parser::Parser;
use parser_scala::Parser;
// ==============

View File

@ -16,7 +16,7 @@ use engine_protocol::project_manager;
use engine_protocol::project_manager::MissingComponentAction;
use engine_protocol::project_manager::ProjectMetadata;
use engine_protocol::project_manager::ProjectName;
use parser::Parser;
use parser_scala::Parser;

View File

@ -11,7 +11,7 @@ use crate::model::project::synchronized::Properties;
use double_representation::project;
use engine_protocol::project_manager::ProjectName;
use parser::Parser;
use parser_scala::Parser;

View File

@ -12,7 +12,7 @@ use double_representation::project;
use double_representation::text::apply_code_change_to_id_map;
use engine_protocol::language_server;
use engine_protocol::types::Sha3_224;
use parser::Parser;
use parser_scala::Parser;
@ -212,7 +212,7 @@ mod test {
use ast::Ast;
use ast::BlockLine;
use enso_text::index::*;
use parser::Parser;
use parser_scala::Parser;
use uuid::Uuid;
use wasm_bindgen_test::wasm_bindgen_test;

View File

@ -11,7 +11,7 @@ use engine_protocol::language_server::MethodPointer;
use engine_protocol::language_server::Path;
use enso_frp::web::platform;
use enso_frp::web::platform::Platform;
use parser::Parser;
use parser_scala::Parser;
@ -260,7 +260,7 @@ mod tests {
#[wasm_bindgen_test]
fn adding_missing_main() {
let _ctx = TestWithLocalPoolExecutor::set_up();
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
let mut data = crate::test::mock::Unified::new();
let module_name = data.module_path.module_name();
let main_ptr = main_method_ptr(data.project_name.clone(), &data.module_path);

View File

@ -26,7 +26,7 @@ use enso_text::Byte;
use enso_text::Location;
use enso_text::Rope;
use flo_stream::Subscriber;
use parser::Parser;
use parser_scala::Parser;
// ==============
@ -550,7 +550,7 @@ impl Searcher {
Data::new_with_edited_node(
project.qualified_name(),
&graph.graph(),
&*database,
&database,
node_id,
)?
} else {

View File

@ -228,7 +228,7 @@ impl List {
if self.module_groups.contains_key(&module_id) {
self.module_groups.get_mut(&module_id)
} else {
let groups = ModuleGroups::new(module_id, &*db_entry).ok()?;
let groups = ModuleGroups::new(module_id, &db_entry).ok()?;
if let Some(module) = module.parent_module() {
if let Some(parent_groups) = self.lookup_module_group(db, &module) {
parent_groups.submodules.push(groups.content.clone_ref())

View File

@ -76,7 +76,7 @@ pub struct Group {
impl Deref for Group {
type Target = Data;
fn deref(&self) -> &Self::Target {
&*self.data
&self.data
}
}
@ -206,7 +206,7 @@ impl Group {
fn sort_by_match(&self) {
let mut entries = self.entries.borrow_mut();
entries.sort_by(|a, b| {
Self::entry_match_ordering(&*a.match_info.borrow(), &*b.match_info.borrow())
Self::entry_match_ordering(&a.match_info.borrow(), &b.match_info.borrow())
});
}

View File

@ -106,7 +106,7 @@ impl Snippet {
/// documentation parser cannot be created or the argument fails to parse as valid
/// documentation.
fn with_documentation(mut self, documentation: &str) -> Self {
let doc_parser = parser::DocParser::new().unwrap();
let doc_parser = parser_scala::DocParser::new().unwrap();
let doc_string = documentation.to_string();
let documentation_html = doc_parser.generate_html_doc_pure(doc_string);
self.documentation_html = Some(documentation_html.unwrap());

View File

@ -78,7 +78,7 @@ impl Handle {
/// Get clone of file path handled by this controller.
pub fn file_path(&self) -> &FilePath {
match &self.file {
FileHandle::PlainText { path, .. } => &*path,
FileHandle::PlainText { path, .. } => path,
FileHandle::Module { controller } => controller.model.path().file_path(),
}
}
@ -177,7 +177,7 @@ mod test {
use crate::executor::test_utils::TestWithLocalPoolExecutor;
use enso_text::index::*;
use parser::Parser;
use parser_scala::Parser;
use wasm_bindgen_test::wasm_bindgen_test;
fn setup_mock_project(setup: impl FnOnce(&mut model::project::MockAPI)) -> model::Project {
@ -233,7 +233,7 @@ mod test {
#[wasm_bindgen_test]
fn obtain_text_controller_for_module() {
let parser = parser::Parser::new_or_panic();
let parser = parser_scala::Parser::new_or_panic();
TestWithLocalPoolExecutor::set_up().run_task(async move {
let code = "2 + 2".to_string();
let undo = default();

View File

@ -287,7 +287,7 @@ impl NodeFromDroppedFileHandler {
}
async fn establish_remote_file_name(&self, original_name: &str) -> FallibleResult<String> {
pick_non_colliding_name(&*self.project.json_rpc(), &self.data_path(), original_name).await
pick_non_colliding_name(&self.project.json_rpc(), &self.data_path(), original_name).await
}
async fn ensure_data_directory_exists(&self) -> FallibleResult {

View File

@ -32,22 +32,21 @@
#![feature(arc_unwrap_or_clone)]
#![feature(async_closure)]
#![feature(associated_type_bounds)]
#![feature(bool_to_option)]
#![feature(cell_update)]
#![feature(drain_filter)]
#![feature(exact_size_is_empty)]
#![feature(iter_order_by)]
#![feature(option_result_contains)]
#![feature(trait_alias)]
#![feature(result_into_ok_or_err)]
#![feature(result_option_inspect)]
#![feature(map_try_insert)]
#![feature(assert_matches)]
#![feature(cell_filter_map)]
#![feature(hash_drain_filter)]
#![feature(unwrap_infallible)]
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(missing_docs)]

View File

@ -175,7 +175,7 @@ impl ComputedValueInfoRegistry {
/// Binary data can be accessed through `Deref` or `AsRef` implementations.
///
/// The inner storage is private and users should not make any assumptions about it.
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct VisualizationUpdateData(Vec<u8>);
impl VisualizationUpdateData {
@ -302,7 +302,7 @@ impl From<&QualifiedMethodPointer> for MethodPointer {
pub type VisualizationId = Uuid;
/// Description of the visualization setup.
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Visualization {
/// Unique identifier of this visualization.
pub id: VisualizationId,

View File

@ -12,9 +12,9 @@ use double_representation::module::ImportId;
use double_representation::project;
use engine_protocol::language_server::MethodPointer;
use flo_stream::Subscriber;
use parser::api::ParsedSourceFile;
use parser::api::SourceFile;
use parser::Parser;
use parser_scala::api::ParsedSourceFile;
use parser_scala::api::SourceFile;
use parser_scala::Parser;
use serde::Deserialize;
use serde::Serialize;
@ -182,7 +182,7 @@ impl Path {
/// Get the file path.
pub fn file_path(&self) -> &FilePath {
&*self.file_path
&self.file_path
}
/// Gives the file name for the given module name.
@ -342,7 +342,7 @@ pub struct Metadata {
rest: serde_json::Value,
}
impl parser::api::Metadata for Metadata {}
impl parser_scala::api::Metadata for Metadata {}
impl Default for Metadata {
fn default() -> Self {
@ -356,7 +356,7 @@ impl Default for Metadata {
}
/// Project-level metadata. It is stored as part of the project's main module's metadata.
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Eq, Serialize)]
pub struct ProjectMetadata {
/// The execution context of the displayed graph editor.
#[serde(default, deserialize_with = "enso_prelude::deserialize_or_default")]
@ -746,7 +746,8 @@ pub mod test {
pub fn plain_from_code(code: impl Into<String>) -> Module {
let urm = default();
MockData { code: code.into(), ..default() }.plain(&parser::Parser::new_or_panic(), urm)
MockData { code: code.into(), ..default() }
.plain(&parser_scala::Parser::new_or_panic(), urm)
}
#[test]

View File

@ -18,9 +18,9 @@ use crate::notification;
use double_representation::definition::DefinitionInfo;
use double_representation::module::ImportId;
use flo_stream::Subscriber;
use parser::api::ParsedSourceFile;
use parser::api::SourceFile;
use parser::Parser;
use parser_scala::api::ParsedSourceFile;
use parser_scala::api::SourceFile;
use parser_scala::Parser;

View File

@ -24,8 +24,8 @@ use enso_text::text;
use enso_text::Location;
use enso_text::Range;
use flo_stream::Subscriber;
use parser::api::SourceFile;
use parser::Parser;
use parser_scala::api::SourceFile;
use parser_scala::Parser;

View File

@ -14,7 +14,7 @@ use engine_protocol::language_server;
use engine_protocol::language_server::ContentRoot;
use flo_stream::Subscriber;
use mockall::automock;
use parser::Parser;
use parser_scala::Parser;
use uuid::Uuid;
@ -168,14 +168,14 @@ pub type Synchronized = synchronized::Project;
// ====================
/// Notification emitted by the project model.
#[derive(Clone, Copy, Debug, PartialEq)]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Notification {
/// One of the backend connections has been lost.
ConnectionLost(BackendConnection),
}
/// Denotes one of backend connections used by a project.
#[derive(Clone, Copy, Debug, PartialEq)]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum BackendConnection {
/// The text connection used to transfer JSON messages.
LanguageServerJson,

View File

@ -24,7 +24,7 @@ use engine_protocol::project_manager;
use engine_protocol::project_manager::MissingComponentAction;
use engine_protocol::project_manager::ProjectName;
use flo_stream::Subscriber;
use parser::Parser;
use parser_scala::Parser;
@ -279,7 +279,7 @@ impl Project {
let language_server = &*language_server_rpc;
let suggestion_db = SuggestionDatabase::create_synchronized(language_server);
let suggestion_db = Rc::new(suggestion_db.await.map_err(&wrap)?);
let content_roots = ContentRoots::new_from_connection(&logger, &*language_server);
let content_roots = ContentRoots::new_from_connection(&logger, language_server);
let content_roots = Rc::new(content_roots);
let notifications = notification::Publisher::default();
let urm = Rc::new(model::undo_redo::Manager::new(&logger));

View File

@ -117,7 +117,7 @@ pub struct NoSuchEntry(pub SuggestionId);
// ====================
/// Notification about change in a suggestion database,
#[derive(Clone, Copy, Debug, PartialEq)]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Notification {
/// The database has been updated.
Updated,

View File

@ -75,7 +75,7 @@ im_string_newtype! {
}
/// A fully qualified name of an [`Entry`].
#[derive(Debug, Default, Clone, PartialEq)]
#[derive(Debug, Default, Clone, PartialEq, Eq)]
#[allow(missing_docs)]
pub struct QualifiedName {
pub segments: Vec<QualifiedNameSegment>,
@ -514,7 +514,7 @@ impl Entry {
docs_html
} else {
docs.map(|docs| {
let parser = parser::DocParser::new();
let parser = parser_scala::DocParser::new();
match parser {
Ok(p) => {
let output = p.generate_html_doc_pure((*docs).to_string());
@ -718,7 +718,7 @@ where I: IntoIterator<Item = &'a language_server::types::DocSection> {
use language_server::types::DocSection;
doc_sections.into_iter().find_map(|section| match section {
DocSection::Keyed { key, body } if key == ICON_DOC_SECTION_KEY => {
let icon_name = IconName::from_snake_case(&body);
let icon_name = IconName::from_snake_case(body);
let as_snake_case = icon_name.to_snake_case();
if as_snake_case.as_str() != body.as_str() || !body.is_case(Case::Snake) {
let msg = format!(
@ -960,7 +960,7 @@ mod test {
/// Test the results of converting a [`QualifiedName`] to a string using various methods.
#[test]
fn qualified_name_to_string() {
let qualified_name = QualifiedName::from_iter(&["Foo", "Bar"]);
let qualified_name = QualifiedName::from_iter(["Foo", "Bar"]);
assert_eq!(qualified_name.to_string(), "Foo.Bar".to_string());
assert_eq!(String::from(qualified_name), "Foo.Bar".to_string());
}

View File

@ -5,7 +5,7 @@ use crate::prelude::*;
use double_representation::definition;
use double_representation::definition::DefinitionName;
use double_representation::module;
use parser::Parser;
use parser_scala::Parser;
@ -83,7 +83,7 @@ impl Example {
/// Creates a pretty documentation from hardcoded inner text.
pub fn documentation_html_from(inner: &str) -> String {
return format!("<div class=\"doc\" style=\"font-size: 13px;\"><p>{}</p></div>", inner);
format!("<div class=\"doc\" style=\"font-size: 13px;\"><p>{}</p></div>", inner)
}
// =========================

View File

@ -275,7 +275,10 @@ impl Repository {
/// Get currently opened transaction. If there is none, open a new one.
pub fn transaction(self: &Rc<Self>, name: impl Into<String>) -> Rc<Transaction> {
self.open_transaction(name).into_ok_or_err()
match self.open_transaction(name) {
Ok(transaction) => transaction,
Err(transaction) => transaction,
}
}
/// Borrow given stack.

View File

@ -489,7 +489,7 @@ impl Graph {
// Position initialization should go before emitting `update_data` event.
update_with_gap <- view.default_y_gap_between_nodes.sample(&update_view);
eval update_with_gap ((gap) model.initialize_nodes_positions(*gap));
update_data <- update_view.map(f_!([model] match ViewUpdate::new(&*model) {
update_data <- update_view.map(f_!([model] match ViewUpdate::new(&model) {
Ok(update) => Rc::new(update),
Err(err) => {
error!("Failed to update view: {err:?}");

View File

@ -717,7 +717,7 @@ impl<'a> ViewChange<'a> {
mod tests {
use super::*;
use engine_protocol::language_server::MethodPointer;
use parser::Parser;
use parser_scala::Parser;
fn create_test_node(expression: &str) -> controller::graph::Node {
let parser = Parser::new_or_panic();

View File

@ -74,7 +74,7 @@ pub enum Notification {
// ==============
/// Describes the state of the visualization on the Language Server.
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, Eq)]
#[allow(clippy::large_enum_variant)]
pub enum Status {
/// Not attached and no ongoing background work.
@ -156,7 +156,7 @@ impl Default for Status {
/// Desired visualization described using unresolved view metadata structure.
#[allow(missing_docs)]
#[derive(Clone, Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Desired {
pub visualization_id: VisualizationId,
pub expression_id: ast::Id,

View File

@ -186,7 +186,7 @@ impl list_view::entry::ModelProvider<component_group_view::Entry> for Component
let is_enterable = component.can_be_entered();
let match_info = component.match_info.borrow();
let label = component.label();
let highlighted = bytes_of_matched_letters(&*match_info, &label);
let highlighted = bytes_of_matched_letters(&match_info, &label);
let icon = match component.data {
component::Data::FromDatabase { entry, .. } => {
let kind = entry.kind;

View File

@ -139,7 +139,7 @@ pub mod mock {
pub module_path: model::module::Path,
pub suggestions: HashMap<suggestion_database::entry::Id, suggestion_database::Entry>,
pub context_id: model::execution_context::Id,
pub parser: parser::Parser,
pub parser: parser_scala::Parser,
code: String,
id_map: ast::IdMap,
metadata: crate::model::module::Metadata,
@ -177,7 +177,7 @@ pub mod mock {
metadata: default(),
context_id: CONTEXT_ID,
root_definition: definition_name(),
parser: parser::Parser::new_or_panic(),
parser: parser_scala::Parser::new_or_panic(),
logger,
}
}

View File

@ -66,7 +66,7 @@ impl SendingError {
// =============
/// Describes the current state of WebSocket connection.
#[derive(Clone, Copy, Debug, PartialEq)]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum State {
/// Socket has been created. The connection is not yet open.
Connecting,

View File

@ -323,8 +323,8 @@ async fn file_operations_test() {
// Edit file using the text protocol
let path = Path::new(project.json_rpc().project_root().id(), &["test_file.txt"]);
let contents = "Hello, 世界!".to_string();
let written = project.json_rpc().write_file(&path, &contents).await.unwrap();
info!("Written: {written:?}");
project.json_rpc().write_file(&path, &contents).await.unwrap();
info!("Written: {contents:?}");
let read_back = project.json_rpc().read_file(&path).await.unwrap();
info!("Read back: {read_back:?}");
assert_eq!(contents, read_back.contents);

View File

@ -23,7 +23,7 @@ ensogl-text-msdf = { path = "../../../lib/rust/ensogl/component/text/src/font/ms
ensogl-hardcoded-theme = { path = "../../../lib/rust/ensogl/app/theme/hardcoded" }
ide-view-component-browser = { path = "component-browser" }
ide-view-graph-editor = { path = "graph-editor" }
parser = { path = "../language/parser" }
parser-scala = { path = "../language/parser" }
span-tree = { path = "../language/span-tree" }
js-sys = { version = "0.3.28" }
multi-map = { version = "1.3.0" }

View File

@ -20,13 +20,12 @@
#![recursion_limit = "1024"]
// === Features ===
#![feature(option_result_contains)]
#![feature(derive_default_enum)]
#![feature(trait_alias)]
#![feature(hash_drain_filter)]
#![feature(bool_to_option)]
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(missing_copy_implementations)]
@ -528,7 +527,7 @@ impl ensogl_core::application::View for Breadcrumbs {
fn default_shortcuts() -> Vec<Shortcut> {
use ensogl_core::application::shortcut::ActionType::*;
(&[(Press, "shift enter", "move_up"), (Press, "ctrl shift enter", "move_down")])
[(Press, "shift enter", "move_up"), (Press, "ctrl shift enter", "move_down")]
.iter()
.map(|(a, b, c)| Self::self_shortcut(*a, *b, *c))
.collect()

View File

@ -43,10 +43,10 @@
#![recursion_limit = "512"]
// === Features ===
#![feature(option_result_contains)]
#![feature(derive_default_enum)]
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(missing_copy_implementations)]
@ -567,7 +567,7 @@ impl component::Frp<Model> for Frp {
fn default_shortcuts() -> Vec<Shortcut> {
use ensogl::application::shortcut::ActionType::*;
(&[(Press, "tab", "accept_suggestion")])
[(Press, "tab", "accept_suggestion")]
.iter()
.map(|(a, b, c)| View::self_shortcut(*a, *b, *c))
.collect()

View File

@ -275,7 +275,7 @@ impl<const COLUMNS: usize> component::Frp<Model<COLUMNS>> for Frp {
fn default_shortcuts() -> Vec<Shortcut> {
use ensogl::application::shortcut::ActionType::*;
(&[(Press, "tab", "accept_suggestion")])
[(Press, "tab", "accept_suggestion")]
.iter()
.map(|(a, b, c)| View::<COLUMNS>::self_shortcut(*a, *b, *c))
.collect()

View File

@ -9,7 +9,6 @@
// === Features ===
#![allow(incomplete_features)]
#![feature(associated_type_defaults)]
#![feature(bool_to_option)]
#![feature(cell_update)]
#![feature(const_type_id)]
#![feature(drain_filter)]
@ -22,7 +21,6 @@
#![feature(unboxed_closures)]
#![feature(trace_macros)]
#![feature(const_trait_impl)]
#![feature(derive_default_enum)]
#![feature(slice_as_chunks)]
#![feature(option_result_contains)]
#![feature(int_roundings)]
@ -30,6 +28,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![allow(clippy::option_map_unit_fn)]

View File

@ -7,6 +7,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(missing_copy_implementations)]

View File

@ -3,6 +3,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(missing_copy_implementations)]
@ -241,9 +242,9 @@ mod transparent_circle {
}
fn init(app: &Application) {
theme::builtin::dark::register(&app);
theme::builtin::light::register(&app);
theme::builtin::light::enable(&app);
theme::builtin::dark::register(app);
theme::builtin::light::register(app);
theme::builtin::light::enable(app);
// === Layers setup ===

View File

@ -4,7 +4,6 @@
// === Features ===
#![allow(incomplete_features)]
#![feature(associated_type_defaults)]
#![feature(bool_to_option)]
#![feature(cell_update)]
#![feature(const_type_id)]
#![feature(drain_filter)]
@ -21,6 +20,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![allow(clippy::option_map_unit_fn)]
@ -198,8 +198,8 @@ fn init_local_scope_section(searcher_list_panel: &ComponentBrowserPanel) {
pub fn main() {
ensogl_text_msdf::run_once_initialized(|| {
let app = &Application::new("root");
theme::builtin::light::register(&app);
theme::builtin::light::enable(&app);
theme::builtin::light::register(app);
theme::builtin::light::enable(app);
let world = &app.display;
let scene = &world.default_scene;

View File

@ -1,6 +1,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
use ensogl::system::web::traits::*;

View File

@ -14,7 +14,7 @@ ensogl = { path = "../../../../../lib/rust/ensogl" }
ensogl-hardcoded-theme = { path = "../../../../../lib/rust/ensogl/app/theme/hardcoded" }
ensogl-text-msdf = { path = "../../../../../lib/rust/ensogl/component/text/src/font/msdf" }
ide-view = { path = "../.." }
parser = { path = "../../../language/parser" }
parser-scala = { path = "../../../language/parser" }
span-tree = { path = "../../../language/span-tree" }
uuid = { version = "0.8", features = ["v4", "wasm-bindgen"] }
wasm-bindgen = { version = "0.2.78", features = ["nightly"] }

View File

@ -5,6 +5,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(missing_copy_implementations)]
@ -37,7 +38,7 @@ use ide_view::graph_editor::Type;
use ide_view::project;
use ide_view::root;
use ide_view::status_bar;
use parser::Parser;
use parser_scala::Parser;
use uuid::Uuid;

View File

@ -5,7 +5,6 @@
#![allow(incomplete_features)]
#![feature(negative_impls)]
#![feature(associated_type_defaults)]
#![feature(bool_to_option)]
#![feature(cell_update)]
#![feature(const_type_id)]
#![feature(drain_filter)]
@ -22,6 +21,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![allow(clippy::option_map_unit_fn)]

View File

@ -6,6 +6,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(missing_copy_implementations)]

View File

@ -3,6 +3,7 @@
// === Standard Linter Configuration ===
#![deny(non_ascii_idents)]
#![warn(unsafe_code)]
#![allow(clippy::bool_to_int_with_if)]
#![allow(clippy::let_and_return)]
// === Non-Standard Linter Configuration ===
#![warn(missing_copy_implementations)]

Some files were not shown because too many files have changed in this diff Show More