perf: Parser performance optimization #3914
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build-and-test-ubuntu | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
jobs: | |
build-and-test: | |
# Ref: https://github.com/actions/runner-images/tree/main/images/linux | |
name: Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3 | |
with: | |
submodules: "true" | |
- name: Set up Go | |
uses: actions/setup-go@v2 | |
with: | |
go-version: 1.23 | |
# Prerequisite | |
- name: Install Python3 (for Grammar test) | |
shell: bash | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y git wget curl make | |
sudo apt-get install python3 python3-pip -y | |
- name: Install rust nightly toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.79 | |
override: true | |
components: clippy, rustfmt | |
- name: Code format check | |
working-directory: ./kclvm | |
run: cargo fmt --check | |
shell: bash | |
- name: Code clippy check | |
working-directory: ./kclvm | |
run: cargo clippy --no-deps -r | |
shell: bash | |
- name: Grammar test | |
working-directory: ./kclvm | |
run: export PATH=$PATH:$PWD/../_build/dist/linux/kclvm/bin && make && make test-grammar | |
shell: bash | |
- name: Evaluator Grammar test | |
working-directory: ./kclvm | |
run: export PATH=$PATH:$PWD/../_build/dist/linux/kclvm/bin && make test-grammar-evaluator | |
shell: bash | |
- name: Runtime test | |
working-directory: ./kclvm | |
run: export PATH=$PATH:$PWD/../_build/dist/linux/kclvm/bin && make test-runtime | |
shell: bash | |
- name: Install KCL CLI | |
run: | | |
go install kcl-lang.io/cli/cmd/kcl@main | |
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH | |
echo "${{ github.workspace }}/go/bin" >> $GITHUB_PATH | |
- name: Unit test | |
working-directory: ./kclvm | |
run: export PATH=$PATH:$PWD/../_build/dist/linux/kclvm/bin && make test | |
shell: bash |