123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- ## This Workflow will run when a PR has "meson" label or when something pushed to master.
- name: Dinit Meson based CI
- on:
- push:
- branches:
- - master
- paths:
- - '.github/workflows/meson_ci.yml'
- - 'build/version.conf'
- - 'build/mconfig.mesontemplate'
- - 'configs/**'
- - 'dasynq/**'
- - 'src/**'
- - '**/meson.build'
- - 'meson_options.txt'
- - '!**/Makefile'
- pull_request:
- types:
- - labeled
- - opened
- - reopened
- - synchronize
- branches:
- - master
- paths:
- - '.github/workflows/meson_ci.yml'
- - 'build/version.conf'
- - 'build/mconfig.mesontemplate'
- - 'configs/**'
- - 'dasynq/**'
- - 'src/**'
- - '**/meson.build'
- - 'meson_options.txt'
- - '!**/Makefile'
- workflow_dispatch:
- jobs:
- Debian-bookworm_build:
- if: ${{ github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'meson') }}
- runs-on: ubuntu-latest
- container:
- image: debian:bookworm
- 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++ meson m4 -y
- - name: Getting depends (i386)
- if: ${{ matrix.arch == 'i386' }}
- run: |
- apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get install meson m4:i386 g++:i386 -y
- - name: Setup
- run: meson setup -Dunit-tests=true -Digr-tests=true dirbuild
- - name: Build
- run: meson compile -C dirbuild
- - name: Unit tests
- run: meson test -v --suite=unit_tests -C dirbuild
- - name: Integration tests
- run: meson test -v --suite=igr_tests -C dirbuild
- - name: Upload igr-tests output file(s) on failure
- uses: actions/upload-artifact@v4.3.2
- if: failure()
- with:
- name: igr-tests_output
- path: dirbuild/src/igr-tests/*/output/*
- MacOS-latest_build:
- if: ${{ github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'meson') }}
- runs-on: macos-latest
- strategy:
- fail-fast: false # Upload src/igr-tests/*/output/* files in igr-tests
- matrix:
- include:
- - arch: 'amd64'
- steps:
- - uses: actions/checkout@v4
- - name: Install meson
- run: brew install meson
- - name: Setup
- run: meson setup -Dunit-tests=true -Digr-tests=true dirbuild
- - name: Build
- run: meson compile -C dirbuild
- - name: Unit tests
- run: meson test -v --suite=unit_tests -C dirbuild
- - name: Integration tests
- run: meson test -v --suite=igr_tests -C dirbuild
- - name: Upload igr-tests output file(s) on failure
- uses: actions/upload-artifact@v4.3.2
- if: failure()
- with:
- name: igr-tests_output
- path: dirbuild/src/igr-tests/*/output/*
- Alpine-latest_build:
- if: ${{ github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'meson') }}
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false # Upload src/igr-tests/*/output/* files in igr-tests
- matrix:
- include:
- - arch: 'armv6'
- - arch: 'armv7'
- - arch: 'aarch64'
- steps:
- - uses: actions/checkout@v4
- - uses: uraimo/run-on-arch-action@v2.7.2
- name: Getting depends & setup & build & unit & integration tests
- with:
- arch: ${{ matrix.arch }}
- distro: alpine_latest
- run: |
- apk add ncurses
- echo "$(tput bold) !---- ${{ matrix.arch }} BUILD ----!$(tput sgr0)"
- echo "$(tput bold) ----Getting depends---- :$(tput sgr0) apk update && apk add meson g++ m4"
- apk update
- apk add meson g++ m4
- echo "$(tput bold) ----Setup---- :$(tput sgr0) meson setup -Dunit-tests=true -Digr-tests=true dirbuild"
- meson setup -Dunit-tests=true -Digr-tests=true dirbuild
- echo "$(tput bold) ----Build---- :$(tput sgr0) meson compile -C dirbuild"
- meson compile -C dirbuild
- echo "$(tput bold) ----Unit tests---- :$(tput sgr0) meson test -v --suite=unit_tests -C dirbuild"
- meson test -v --suite=unit_tests -C dirbuild
- echo "$(tput bold) ----Integration tests---- :$(tput sgr0) meson test -v --suite=igr_tests -C dirbuild"
- meson test -v --suite=igr_tests -C dirbuild
- - name: Upload igr-tests output file(s) on failure
- uses: actions/upload-artifact@v4.3.2
- if: failure()
- with:
- name: igr-tests_output
- path: dirbuild/src/igr-tests/*/output/*
|