name: Dinit Regular CI on: push: branches: - master paths: - '.github/workflows/regular_ci.yml' - 'build/**' - 'configs/**' - 'dasynq/**' - 'src/**' - '**/Makefile' - '!build/mconfig.mesontemplate' - '!build/includes/README' - '!**/meson.build' pull_request: branches: - master paths: - '.github/workflows/regular_ci.yml' - 'build/**' - 'configs/**' - 'dasynq/**' - 'src/**' - '**/Makefile' - '!build/mconfig.mesontemplate' - '!build/includes/README' - '!**/meson.build' workflow_dispatch: jobs: Debian-bullseye_build: runs-on: ubuntu-20.04 container: image: debian:bullseye strategy: fail-fast: false # Upload src/igr-tests/*/output/* files in igr-tests matrix: include: - arch: 'amd64' - arch: 'i386' steps: - uses: actions/checkout@v4 - name: Add i386 repos if: ${{ matrix.arch == 'i386' }} run: dpkg --add-architecture i386 - name: Getting depends (amd64) if: ${{ matrix.arch == 'amd64' }} run: | apt-get update DEBIAN_FRONTEND=noninteractive apt-get install g++ make m4 file -y - name: Getting depends (i386) if: ${{ matrix.arch == 'i386' }} run: | apt-get update DEBIAN_FRONTEND=noninteractive apt-get install gcc:i386 make:i386 m4:i386 g++:i386 file -y - name: Print g++ architecture run: g++ -dumpmachine - name: Build run: make - name: Print dinit executive file architecture run: file ./src/dinit - name: Unit tests run: make check - name: Integration tests run: make check-igr - name: Upload igr-tests output file(s) on failure uses: actions/upload-artifact@v4.3.2 if: failure() with: name: igr-tests_output path: src/igr-tests/*/output/* MacOS-latest_build: runs-on: macos-latest strategy: fail-fast: false # Upload src/igr-tests/*/output/* files in igr-tests matrix: include: - arch: 'aarch64' steps: - uses: actions/checkout@v4 # on MacOS, g++ symlinked to clang++ # We must verify that - name: Verify g++ (is it g++ or clang++?) run: g++ --version - name: Print g++ architecture run: g++ -dumpmachine - name: Build run: make - name: Print dinit executive file architecture run: file ./src/dinit - name: Unit tests run: make check - name: Integration tests run: make check-igr - name: Upload igr-tests output file(s) on failure uses: actions/upload-artifact@v4.3.2 if: failure() with: name: igr-tests_output path: src/igr-tests/*/output/* Alpine-latest_build: runs-on: ubuntu-20.04 container: image: alpine:latest strategy: fail-fast: false # Upload src/igr-tests/*/output/* files in igr-tests matrix: include: - arch: 'amd64' steps: - uses: actions/checkout@v4 - name: Getting depends run: | apk update apk add make g++ m4 file - name: Print g++ architecture run: g++ -dumpmachine - name: Build run: make - name: Print dinit executive file architecture run: file ./src/dinit - name: Unit tests run: make check - name: Integration tests run: make check-igr - name: Upload igr-tests output file(s) on failure uses: actions/upload-artifact@v4.3.2 if: failure() with: name: igr-tests_output path: src/igr-tests/*/output/*