perf!(builtin/string): prevent calculating .length()
twice in substring()
#4332
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: check | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, macos-13, windows-latest] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
continue-on-error: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install | |
if: ${{ matrix.os != 'windows-latest' }} | |
run: | | |
curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash | |
echo "$HOME/.moon/bin" >> $GITHUB_PATH | |
- name: install on windows | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: | | |
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser; irm https://cli.moonbitlang.com/install/powershell.ps1 | iex | |
"C:\Users\runneradmin\.moon\bin" | Out-File -FilePath $env:GITHUB_PATH -Append | |
- name: moon version | |
run: | | |
moon version --all | |
moonrun --version | |
- name: moon check | |
run: moon check --deny-warn | |
- name: moon info | |
run: | | |
moon info | |
git diff --exit-code | |
- name: Set ulimit and run moon test | |
if: ${{ matrix.os != 'windows-latest' }} | |
run: | | |
ulimit -s 8176 | |
moon test --target all | |
moon test --release --target all | |
moon test --target native | |
moon test --target native --release | |
- name: Setup MSVC | |
if: ${{ matrix.os == 'windows-latest' }} | |
uses: ilammy/msvc-dev-cmd@v1 | |
- name: Run moon test on Windows | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: | | |
moon test --target all | |
moon test --release --target all | |
moon test --target native | |
- name: moon test --doc | |
run: | | |
moon test --doc | |
- name: moon bundle | |
run: moon bundle --all | |
- name: check core size | |
if: ${{ matrix.os != 'windows-latest' }} | |
run: find ./target -name '*.core' | xargs ls -lh | |
- name: check core size on windows | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: Get-ChildItem -Path ".\target" -Recurse -Filter "*.core" | ForEach-Object { "{0} ({1} bytes)" -f $_.FullName, $_.Length } | |
- name: format diff | |
run: | | |
moon fmt --block-style | |
git diff --exit-code | |
coverage-check: | |
runs-on: macos-14 | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install | |
run: | | |
curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash | |
echo "$HOME/.moon/bin" >> $GITHUB_PATH | |
- name: moon test | |
run: moon test --enable-coverage | |
- name: coverage report | |
run: | | |
moon coverage report -f summary > coverage_summary.txt | |
# Put the coverage report in the pipline output | |
cat coverage_summary.txt >> "$GITHUB_STEP_SUMMARY" | |
# We don't use the official coveralls upload tool because it takes >1min to build itself | |
moon coverage report \ | |
-f coveralls \ | |
-o codecov_report.json \ | |
--service-name github \ | |
--service-job-id "$GITHUB_RUN_NUMBER" \ | |
--service-pull-request "${{ github.event.number }}" \ | |
--send-to coveralls | |
env: | |
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
typo-check: | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
env: | |
FORCE_COLOR: 1 | |
TYPOS_VERSION: v1.19.0 | |
steps: | |
- name: download typos | |
run: curl -LsSf https://github.com/crate-ci/typos/releases/download/$TYPOS_VERSION/typos-$TYPOS_VERSION-x86_64-unknown-linux-musl.tar.gz | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: check typos | |
run: typos | |
license-header-check: | |
runs-on: ubuntu-latest | |
env: | |
HAWKEYE_VERSION: v5.5.1 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download HawkEye | |
run: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/korandoru/hawkeye/releases/download/$HAWKEYE_VERSION/hawkeye-installer.sh | sh | |
- name: Check License Header | |
run: hawkeye check | |
nightly-check: | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, macos-13, windows-latest] | |
fail-fast: false | |
continue-on-error: true | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install | |
if: ${{ matrix.os != 'windows-latest' }} | |
run: | | |
curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash -s 'nightly' | |
echo "$HOME/.moon/bin" >> $GITHUB_PATH | |
- name: install on windows | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: | | |
irm https://cli.moonbitlang.com/install/powershell.ps1 | iex | |
"C:\Users\runneradmin\.moon\bin" | Out-File -FilePath $env:GITHUB_PATH -Append | |
env: | |
MOONBIT_INSTALL_VERSION: nightly | |
- name: moon version | |
run: | | |
moon version --all | |
moonrun --version | |
- name: moon check | |
run: moon check --deny-warn | |
- name: Set ulimit and run moon test | |
if: ${{ matrix.os != 'windows-latest' }} | |
run: | | |
ulimit -s 8176 | |
moon test --target all | |
moon test --release --target all | |
moon test --target native | |
moon test --target native --release | |
- name: Setup MSVC | |
if: ${{ matrix.os == 'windows-latest' }} | |
uses: ilammy/msvc-dev-cmd@v1 | |
- name: Run moon test on Windows | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: | | |
moon test --target all | |
moon test --release --target all | |
moon test --target native | |
- name: moon test --doc | |
run: | | |
moon test --doc | |
- name: moon bundle | |
run: moon bundle --all | |
- name: moon info | |
run: | | |
moon info | |
git diff | |
- name: check core size | |
if: ${{ matrix.os != 'windows-latest' }} | |
run: find ./target -name '*.core' | xargs ls -lh | |
- name: check core size on windows | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: Get-ChildItem -Path ".\target" -Recurse -Filter "*.core" | ForEach-Object { "{0} ({1} bytes)" -f $_.FullName, $_.Length } | |
- name: format diff | |
run: | | |
moon fmt | |
git diff | |
bleeding-check: | |
continue-on-error: true | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install | |
run: | | |
curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash -s 'bleeding' | |
echo "$HOME/.moon/bin" >> $GITHUB_PATH | |
- name: moon version | |
run: | | |
moon version --all | |
moonrun --version | |
- name: moon check | |
run: moon check --deny-warn | |
- name: Set ulimit and run moon test | |
run: | | |
ulimit -s 8176 | |
moon test --target all | |
moon test --release --target all | |
moon test --target native | |
moon test --target native --release | |
- name: moon test --doc | |
run: | | |
moon test --doc | |
- name: moon bundle | |
run: moon bundle --all | |
- name: moon info | |
run: | | |
moon info | |
git diff | |
- name: check core size | |
run: find ./target -name '*.core' | xargs ls -lh | |
- name: format diff | |
run: | | |
moon fmt | |
git diff |