tracking the memory usage of orc-booting compiler for each commit (#19941)
* yaml * pub * redo * let's comment * now action * newly * code name * build * ready * remove submodule * build * modify name * fix * rephrase * trigger when PR is merged
This commit is contained in:
parent
fb5fbf1e08
commit
cf1c149366
2 changed files with 118 additions and 0 deletions
90
.github/workflows/ci_publish.yml
vendored
Normal file
90
.github/workflows/ci_publish.yml
vendored
Normal file
|
|
@ -0,0 +1,90 @@
|
||||||
|
name: Tracking orc-booting compiler memory usage
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- devel
|
||||||
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-20.04]
|
||||||
|
cpu: [amd64]
|
||||||
|
name: '${{ matrix.os }}'
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- name: 'Checkout'
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 2
|
||||||
|
|
||||||
|
- name: 'Install node.js 16.x'
|
||||||
|
uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: '16.x'
|
||||||
|
|
||||||
|
- name: 'Install dependencies (Linux amd64)'
|
||||||
|
if: runner.os == 'Linux' && matrix.cpu == 'amd64'
|
||||||
|
run: |
|
||||||
|
sudo apt-fast update -qq
|
||||||
|
DEBIAN_FRONTEND='noninteractive' \
|
||||||
|
sudo apt-fast install --no-install-recommends -yq \
|
||||||
|
libcurl4-openssl-dev libgc-dev libsdl1.2-dev libsfml-dev \
|
||||||
|
valgrind libc6-dbg libblas-dev xorg-dev
|
||||||
|
- name: 'Install dependencies (macOS)'
|
||||||
|
if: runner.os == 'macOS'
|
||||||
|
run: brew install boehmgc make sfml gtk+3
|
||||||
|
- name: 'Install dependencies (Windows)'
|
||||||
|
if: runner.os == 'Windows'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
. ci/funs.sh
|
||||||
|
nimInternalInstallDepsWindows
|
||||||
|
echo_run echo "${{ github.workspace }}/dist/mingw64/bin" >> "${GITHUB_PATH}"
|
||||||
|
|
||||||
|
- name: 'Add build binaries to PATH'
|
||||||
|
shell: bash
|
||||||
|
run: echo "${{ github.workspace }}/bin" >> "${GITHUB_PATH}"
|
||||||
|
|
||||||
|
- name: 'System information'
|
||||||
|
shell: bash
|
||||||
|
run: . ci/funs.sh && nimCiSystemInfo
|
||||||
|
|
||||||
|
- name: 'Build csourcesAny'
|
||||||
|
shell: bash
|
||||||
|
run: . ci/funs.sh && nimBuildCsourcesIfNeeded CC=gcc ucpu='${{ matrix.cpu }}'
|
||||||
|
|
||||||
|
- name: 'Build koch'
|
||||||
|
shell: bash
|
||||||
|
run: nim c koch
|
||||||
|
|
||||||
|
- name: 'Build Nim'
|
||||||
|
shell: bash
|
||||||
|
run: ./koch boot -d:release -d:nimStrictMode --lib:lib
|
||||||
|
|
||||||
|
- name: 'Action'
|
||||||
|
shell: bash
|
||||||
|
run: nim c -r -d:release ci/action.nim
|
||||||
|
|
||||||
|
- name: 'Comment'
|
||||||
|
uses: actions/github-script@v6
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
|
try {
|
||||||
|
const data = fs.readFileSync('ci/nimcache/results.txt', 'utf8');
|
||||||
|
github.rest.issues.createComment({
|
||||||
|
issue_number: context.issue.number,
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
body: data
|
||||||
|
})
|
||||||
|
} catch (err) {
|
||||||
|
console.error(err);
|
||||||
|
}
|
||||||
|
|
||||||
28
ci/action.nim
Normal file
28
ci/action.nim
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
import std/[strutils, os, osproc, parseutils, strformat]
|
||||||
|
|
||||||
|
|
||||||
|
proc main() =
|
||||||
|
var msg = ""
|
||||||
|
const cmd = "./koch boot --gc:orc -d:release"
|
||||||
|
|
||||||
|
let (output, exitCode) = execCmdEx(cmd)
|
||||||
|
|
||||||
|
doAssert exitCode == 0, output
|
||||||
|
|
||||||
|
var start = rfind(output, "Hint: gc")
|
||||||
|
if start < 0:
|
||||||
|
start = rfind(output, "Hint: mm")
|
||||||
|
doAssert parseUntil(output, msg, "; proj", start) > 0, output
|
||||||
|
|
||||||
|
let (commitHash, _) = execCmdEx("""git log --format="%H" -n 1""")
|
||||||
|
|
||||||
|
let welcomeMessage = fmt"""Thanks for your hard work on this PR!
|
||||||
|
The lines below are statistics of the Nim compiler built from {commitHash}
|
||||||
|
|
||||||
|
{msg}
|
||||||
|
"""
|
||||||
|
createDir "ci/nimcache"
|
||||||
|
writeFile "ci/nimcache/results.txt", welcomeMessage
|
||||||
|
|
||||||
|
when isMainModule:
|
||||||
|
main()
|
||||||
Loading…
Add table
Add a link
Reference in a new issue