Skip to content

wip

wip #42

Workflow file for this run

name: Makefile CI
on:
push:
pull_request:
env:
# BASIC_PACKAGES is used fo the basic tools (make)
BASIC_PACKAGES: git build-essential ccache libgc-dev graphviz libunwind-dev libreadline-dev pkg-config
# MORE_PACKAGES is used for more tools and libs (make more)
MORE_PACKAGES: libgmp-dev libcurl4-openssl-dev libevent-dev openjdk-17-jdk-headless libgles-dev libegl-dev libsdl1.2-dev libsdl2-dev libsdl2-mixer-dev libsdl2-gfx-dev libsdl2-image-dev libsdl2-net-dev libsdl2-ttf-dev libgtk-3-dev inkscape postgresql libxdg-basedir-dev gettext libsqlite3-dev libpq-dev libmongoc-dev openmpi-bin libopenmpi-dev
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64/
JNI_LIB_PATH: /usr/lib/jvm/java-17-openjdk-amd64/lib/server/
LD_LIBRARY_PATH: /usr/lib/jvm/java-17-openjdk-amd64/lib/server/
jobs:
build:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y $BASIC_PACKAGES
- run: make
- uses: actions/upload-artifact@v4
with:
path: bin
name: bin
sanity-check:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- run: git fetch origin # Ensure origin/master is present
- run: true # misc/jenkins/checkwhitespaces.sh # broken on github runner (wtf?)
if: success() || failure()
- run: misc/jenkins/checkbinaryfiles.sh
if: success() || failure()
- run: misc/jenkins/checklicense.sh
if: success() || failure()
- run: misc/jenkins/checksignedoffby.sh
if: success() || failure()
tests-some:
runs-on: ubuntu-24.04
needs: [build]
container: "ubuntu:24.04"
services:
postgres:
image: postgres
env:
POSTGRES_HOST_AUTH_METHOD: trust
mongo:
image: mongo
neo4j:
image: 'neo4j:2.3'
env:
NEO4J_AUTH: none
strategy:
fail-fast: false
matrix:
engine: [nitcg, nitcs, nitcsg, nitce, niti]
steps:
- name: Install dependencies
run: apt-get update && apt-get install -y $BASIC_PACKAGES $MORE_PACKAGES
- uses: actions/checkout@v4
- run: misc/jenkins/ensuregit.sh
- uses: actions/download-artifact@v4
- run: chmod +x bin/*
- run: make src/version.nit
- run: cd tests && ./search_tests_git.sh origin/master HEAD > list
- run: cd tests && ./tests.sh --engine ${{ matrix.engine }} `cat list`
- uses: actions/upload-artifact@v4
if: success() || failure()
with:
path: 'tests/*.xml'
name: tests-some-${{ matrix.engine }}
- uses: actions/upload-artifact@v4
if: success() || failure()
with:
path: 'tests/out'
name: tests-some-${{ matrix.engine }}-res
- uses: EnricoMi/publish-unit-test-result-action@v2
if: success() || failure()
with:
files: "tests/*.xml"
comment_mode: off
check_name: tests-some (${{ matrix.engine }}) Results
tests-full:
runs-on: ubuntu-24.04
needs: [build]
container: "ubuntu:24.04"
services:
postgres:
image: postgres
env:
POSTGRES_HOST_AUTH_METHOD: trust
mongo:
image: mongo
neo4j:
image: 'neo4j:2.3'
env:
NEO4J_AUTH: none
strategy:
fail-fast: false
matrix:
engine: [nitcg, nitcs, nitcsg, nitce, niti]
steps:
- name: Install dependencies
run: apt-get update && apt-get install -y $BASIC_PACKAGES $MORE_PACKAGES
- uses: actions/checkout@v4
- run: misc/jenkins/ensuregit.sh
- uses: actions/download-artifact@v4
- run: chmod +x bin/*
- run: make src/version.nit
- name: Run tests
run: cd tests && ./testfull.sh --engine ${{ matrix.engine }}
- uses: actions/upload-artifact@v4
if: success() || failure()
with:
path: 'tests/*.xml'
name: tests-full-${{ matrix.engine }}
- uses: actions/upload-artifact@v4
if: success() || failure()
with:
path: 'tests/out'
name: tests-full-${{ matrix.engine }}-res
- uses: EnricoMi/publish-unit-test-result-action@v2
if: success() || failure()
with:
files: "tests/*.xml"
comment_mode: off
check_name: tests-full (${{ matrix.engine }}) Results
nitunit-some:
runs-on: ubuntu-24.04
needs: [build]
container: "ubuntu:24.04"
services:
postgres:
image: postgres
env:
POSTGRES_HOST_AUTH_METHOD: trust
mongo:
image: mongo
neo4j:
image: 'neo4j:2.3'
env:
NEO4J_AUTH: none
steps:
- name: Install dependencies
run: apt-get update && apt-get install -y $BASIC_PACKAGES $MORE_PACKAGES
- uses: actions/checkout@v4
- run: misc/jenkins/ensuregit.sh
- uses: actions/download-artifact@v4
- run: chmod +x bin/*
- run: make nitunit-some
- uses: actions/upload-artifact@v4
if: success() || failure()
with:
path: '*.xml'
name: nitunit-some
- uses: EnricoMi/publish-unit-test-result-action@v2
if: success() || failure()
with:
files: "*.xml"
comment_mode: off
check_name: 'nitunit-some Results'
nitunit-lib:
runs-on: ubuntu-24.04
needs: [build]
container: "ubuntu:24.04"
services:
postgres:
image: postgres
env:
POSTGRES_HOST_AUTH_METHOD: trust
mongo:
image: mongo
neo4j:
image: 'neo4j:2.3'
env:
NEO4J_AUTH: none
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: apt-get update && apt-get install -y $BASIC_PACKAGES $MORE_PACKAGES
- uses: actions/download-artifact@v4
- run: chmod +x bin/*
- run: make nitunit-lib
- uses: actions/upload-artifact@v4
if: success() || failure()
with:
path: '*.xml'
name: nitunit-lib
- uses: EnricoMi/publish-unit-test-result-action@v2
if: success() || failure()
with:
files: "*.xml"
comment_mode: off
check_name: 'nitunit-lib Results'
nitunit-src:
runs-on: ubuntu-24.04
needs: [build]
container: "ubuntu:24.04"
services:
postgres:
image: postgres
env:
POSTGRES_HOST_AUTH_METHOD: trust
mongo:
image: mongo
neo4j:
image: 'neo4j:2.3'
env:
NEO4J_AUTH: none
steps:
- name: Install dependencies
run: apt-get update && apt-get install -y $BASIC_PACKAGES
- uses: actions/checkout@v4
- run: misc/jenkins/ensuregit.sh
- uses: actions/download-artifact@v4
- run: chmod +x bin/*
- run: make nitunit-src
- uses: actions/upload-artifact@v4
if: success() || failure()
with:
path: '*.xml'
name: nitunit-src
- uses: EnricoMi/publish-unit-test-result-action@v2
if: success() || failure()
with:
files: "*.xml"
comment_mode: off
check_name: 'nitunit-src Results'
test-contrib:
runs-on: ubuntu-24.04
needs: [build]
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y $BASIC_PACKAGES $MORE_PACKAGES
- uses: actions/download-artifact@v4
- run: chmod +x bin/*
- run: 'PATH=$PWD/bin:$PATH make test-contrib'
- uses: actions/upload-artifact@v4
if: success() || failure()
with:
path: '*.xml'
name: test-contrib
- uses: EnricoMi/publish-unit-test-result-action@v2
if: success() || failure()
with:
files: "*.xml"
comment_mode: off
check_name: 'test-contrib Results'
bootstrap-full:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y $BASIC_PACKAGES
- run: make bootstrap-full
bench-fast:
runs-on: ubuntu-24.04
needs: [build]
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y $BASIC_PACKAGES gnuplot
- uses: actions/download-artifact@v4
- run: chmod +x bin/*
- run: 'PATH=$PWD/bin:$PATH make bench-fast'
- uses: actions/upload-artifact@v4
if: success() || failure()
with:
path: |-
benchmarks/*.dat
benchmarks/*.gnu
benchmarks/*.png
benchmarks/*.html
name: bench-fast
valgrind:
runs-on: ubuntu-24.04
needs: [build]
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y $BASIC_PACKAGES valgrind
- uses: actions/download-artifact@v4
- run: chmod +x bin/*
- run: make valgrind
- uses: actions/upload-artifact@v4
if: success() || failure()
with:
path: 'valgrind.out'
name: valgrind
info:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- run: pwd
- run: id
- run: ls -al
- run: git branch -av || true
- run: lscpu || true
- run: git log --oneline --graph --decorate | head -n 50
- run: cat /etc/issue
- run: cat /etc/os-release
- run: env