diff --git a/.github/workflows/makefile.yml b/.github/workflows/makefile.yml index cd99d7da37..da6cc40fcf 100644 --- a/.github/workflows/makefile.yml +++ b/.github/workflows/makefile.yml @@ -7,7 +7,7 @@ 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-11-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 + MORE_PACKAGES: libgmp-dev libcurl4-openssl-dev libevent-dev openjdk-11-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-11-openjdk-amd64/ JNI_LIB_PATH: /usr/lib/jvm/java-11-openjdk-amd64/lib/server/ LD_LIBRARY_PATH: /usr/lib/jvm/java-11-openjdk-amd64/lib/server/ @@ -51,8 +51,6 @@ jobs: run: sudo apt-get update && sudo apt-get install -y $BASIC_PACKAGES - uses: actions/download-artifact@v4 - run: chmod +x bin/* - - name: Run tests - run: true # cd tests && make some - 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 @@ -132,7 +130,7 @@ jobs: - uses: actions/checkout@v4 - name: Install dependencies run: apt-get update && apt-get install -y $BASIC_PACKAGES - - run: git fetch origin # Ensure origin/master is present + - run: misc/jenkins/ensuregit.sh - uses: actions/download-artifact@v4 - run: chmod +x bin/* - run: make nitunit-some @@ -185,11 +183,23 @@ jobs: 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: - uses: actions/checkout@v4 - - run: git fetch origin # Ensure origin/master is present + - run: misc/jenkins/ensuregit.sh - name: Install dependencies - run: sudo apt-get update && sudo apt-get install -y $BASIC_PACKAGES + run: apt-get update && apt-get install -y $BASIC_PACKAGES - uses: actions/download-artifact@v4 - run: chmod +x bin/* - run: make nitunit-src @@ -284,3 +294,4 @@ jobs: - run: git log --oneline --graph --decorate | head -n 50 - run: cat /etc/issue - run: cat /etc/os-release + - run: env diff --git a/misc/jenkins/ensuregit.sh b/misc/jenkins/ensuregit.sh new file mode 100755 index 0000000000..e58113fc8e --- /dev/null +++ b/misc/jenkins/ensuregit.sh @@ -0,0 +1,12 @@ +# This script ensura that nit is a git repository with a fetched origin +# It helps CI/CD environment that + +if ! test -f src/nitc.nit; then + echo "Error: run the script in the root directory of nit" + exit 1 +fi + +git init +git remote add origin https://github.com/nitlang/nit.git +git remote set-url origin https://github.com/nitlang/nit.git +git fetch origin