name: Luau static file analysis on: push: branches: - "feat/add-static-file-luau-analyze" pull_request: paths-ignore: - "docs/**" - "papers/**" - "rfcs/**" - "*.md" - "prototyping/**" jobs: benchmarks-run: name: Run ${{ matrix.bench.title }} strategy: fail-fast: false matrix: os: [ubuntu-latest] engine: - { channel: stable, version: latest } bench: - { script: "run-analyze", timeout: 12, title: "Luau Analyze", cachegrindTitle: "Performance", cachegrindIterCount: 20, } benchResultsRepo: - { name: "AllanJeremy/luau-benchmark-results", branch: "main" } runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 with: token: "${{ secrets.BENCH_GITHUB_TOKEN }}" - name: Build Luau run: make config=release luau luau-analyze - uses: actions/setup-python@v4 with: python-version: "3.9" architecture: "x64" - name: Install python dependencies run: | sudo pip install requests numpy scipy matplotlib ipython jupyter pandas sympy nose - name: Install valgrind run: | sudo apt-get install valgrind # - name: Run Luau Analyze on static file # run: python ./bench/measure_time.py ./build/release/luau-analyze bench/static_analysis/LuauPolyfillMap.lua | tee ${{ matrix.bench.script }}-output.txt - name: Run ${{ matrix.bench.title }} (Cold Cachegrind) run: sudo ./scripts/run-with-cachegrind.sh python ./bench/measure_time.py "${{ matrix.bench.cachegrindTitle}}Cold" 1 ./build/release/luau-analyze bench/static_analysis/LuauPolyfillMap.lua | tee -a ${{ matrix.bench.script }}-output.txt # - name: Run ${{ matrix.bench.title }} (Warm Cachegrind) # run: sudo bash ./scripts/run-with-cachegrind.sh python ./bench/measure_time.py "${{ matrix.bench.cachegrindTitle}}" 1 ./build/release/luau-analyze bench/static_analysis/LuauPolyfillMap.lua | tee -a ${{ matrix.bench.script }}-output.txt # - name: Checkout Benchmark Results repository # uses: actions/checkout@v3 # with: # repository: ${{ matrix.benchResultsRepo.name }} # ref: ${{ matrix.benchResultsRepo.branch }} # token: ${{ secrets.BENCH_GITHUB_TOKEN }} # path: "./gh-pages" # - name: Store ${{ matrix.bench.title }} result # uses: Roblox/rhysd-github-action-benchmark@v-luau # with: # name: ${{ matrix.bench.title }} # tool: "benchmarkluau" # gh-pages-branch: "main" # output-file-path: ./${{ matrix.bench.script }}-output.txt # external-data-json-path: ./gh-pages/dev/bench/data.json # alert-threshold: 150% # fail-threshold: 200% # fail-on-alert: true # comment-on-alert: true # comment-always: true # github-token: ${{ secrets.GITHUB_TOKEN }} # - name: Push benchmark results # if: github.event_name == 'push' # run: | # echo "Pushing benchmark results..." # cd gh-pages # git config user.name github-actions # git config user.email github@users.noreply.github.com # git add ./dev/bench/data.json # git commit -m "Add benchmarks results for ${{ github.sha }}" # git push # cd ..