Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  build.yml   Sprache: unbekannt

 
Spracherkennung für: .yml vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

name: build and test
on:
  push:
    branches-ignore:
      - "gh-pages"
    tags-ignore:
      - "v0.[0-8]**"
  pull_request:
    branches-ignore:
      - "gh-pages"

jobs:
  build_and_test:
    strategy:
      fail-fast: false
      matrix:
        include:

          # Minimal 64-bit arch builds
          - CC: gcc
            feature_set: min
            arch: amd64
            os: ubuntu-22.04
            unittests: false
            DISTCHECK: false

          - CC: g++
            feature_set: min
            arch: amd64
            os: ubuntu-22.04
            unittests: false
            DISTCHECK: false

          - CC: clang
            feature_set: min
            arch: amd64
            os: ubuntu-22.04
            unittests: false
            DISTCHECK: false

          # Maximal 64-bit arch builds
          - CC: gcc
            feature_set: max
            arch: amd64
            os: ubuntu-22.04
            unittests: true
            DISTCHECK: true

          - CC: g++
            feature_set: max
            arch: amd64
            os: ubuntu-22.04
            unittests: false
            DISTCHECK: false

          - CC: clang
            feature_set: max
            arch: amd64
            os: ubuntu-22.04
            unittests: true
            DISTCHECK: true

          # Maximal debug 64-bit arch builds
          # Check we can also do a static build without
          # installing .a files
          - CC: gcc
            feature_set: max
            arch: amd64
            os: ubuntu-22.04
            unittests: true
            DISTCHECK: false
            name_extra: and DEBUG
            CONF_FLAGS_EXTRA: "--enable-devel-all --disable-static"

          # Maximal 32-bit arch builds
          - CC: gcc
            feature_set: max
            arch: i386
            os: ubuntu-22.04
            unittests: true
            DISTCHECK: false
            name_extra: for 32-bit arch (legacy OS)

          - CC: g++
            feature_set: max
            arch: i386
            os: ubuntu-22.04
            unittests: false
            DISTCHECK: false
            name_extra: for 32-bit arch (legacy OS)

          - CC: clang
            feature_set: max
            arch: i386
            os: ubuntu-22.04
            unittests: true
            DISTCHECK: false
            name_extra: for 32-bit arch (legacy OS)

    name: ${{ matrix.feature_set }} features with ${{ matrix.CC }} ${{ matrix.name_extra }}
    runs-on: ${{ matrix.os }}
    env:
      CC: ${{ matrix.CC }}

      # HACK (2020-11-16): github actions doesn't support YAML anchors/aliases to
      # avoid repeating long config values. So instead the config values are defined
      # as environment variables using a naming convention with fields that come from
      # the job config. These environment variables are then referenced as regular
      # environment variables via the naming convention in the "define env" step to
      # define the standard environment variable used in the rest of the steps.
      CONF_FLAGS_amd64_min: "--disable-ipv6 --disable-jpeg --disable-fuse --disable-mp3lame
                  --disable-fdkaac --disable-opus --disable-rfxcodec --disable-painter
                  --disable-pixman --disable-utmp"
      CONF_FLAGS_amd64_max: "--enable-ipv6 --enable-jpeg --enable-fuse --enable-mp3lame
                  --enable-fdkaac --enable-opus --enable-rfxcodec --enable-painter
                  --enable-pixman --enable-utmp --with-imlib2 --with-freetype2 --enable-tests
                  --enable-x264 --enable-openh264 --enable-smartcard"
      CONF_FLAGS_i386_max: "--enable-ipv6 --enable-jpeg --enable-mp3lame
                  --enable-opus --enable-rfxcodec --enable-painter
                  --disable-pixman --with-imlib2 --with-freetype2
                  --host=i686-linux --enable-tests --enable-smartcard"

      PKG_CONFIG_PATH_i386: "/usr/lib/i386-linux-gnu/pkgconfig"
      CFLAGS_i386: "-m32"
      LDFLAGS_i386: "-m32"
    steps:
      - name: "Define feature and arch dependent environment variables"
        # Note: any "variable=value" written to the $GITHUB_ENV file will be
        # defined as an environment variable for all future steps in this job
        # See: https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable
        run: |
          echo "CONF_FLAGS=$CONF_FLAGS_${{ matrix.arch }}_${{ matrix.feature_set }} ${{ matrix.CONF_FLAGS_EXTRA }}" >> $GITHUB_ENV
          echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH_${{ matrix.arch }}" >> $GITHUB_ENV
          echo "CFLAGS=$CFLAGS_${{ matrix.arch }}" >> $GITHUB_ENV
          echo "LDFLAGS=$LDFLAGS_${{ matrix.arch }}" >> $GITHUB_ENV
      - uses: actions/checkout@v6
      - name: "Install Dependencies"
        # See https://github.com/actions/runner-images/issues/7192
        run: |
          echo RESET grub-efi/install_devices | sudo debconf-communicate grub-pc
          sudo scripts/install_xrdp_build_dependencies_with_apt.sh ${{ matrix.feature_set }} ${{ matrix.arch }} --allow-downgrades --allow-remove-essential --allow-change-held-packages
      - name: Bootstrap
        run: ./bootstrap
      - name: configure
        run: ./configure $CONF_FLAGS
      - name: make
        run: make -j $(nproc)
      - name: unittests
        if: ${{ matrix.unittests }}
        run: make check -j $(nproc)
      - name: distcheck
        id: dist_check
        if: ${{ matrix.DISTCHECK }}
        run: make distcheck -j $(nproc)
      - name: "Artifact: test-suite.log distcheck"
        uses: actions/upload-artifact@v7
        if: always() && steps.dist_check.outcome == 'failure'
        with:
          name: test-suite-distcheck-${{ matrix.cc }}-${{ matrix.feature_set }}
          path: ${{ github.workspace }}/xrdp-*/_build/sub/tests/xrdp/test-suite.log

  cppcheck:
    name: cppcheck
    runs-on: ubuntu-22.04
    env:
      CC: gcc
      # This is required to use a version of cppcheck other than that
      # supplied with the operating system
      CPPCHECK_VER: "2.16.0"
      CPPCHECK_REPO: https://github.com/danmar/cppcheck.git
    steps:
      # Set steps.os.outputs.image to the specific OS (e.g. 'ubuntu20')
      - name: Get operating system name and version.
        id: os
        run: echo "image=$ImageOS" >>$GITHUB_OUTPUT
        shell: bash
      - uses: actions/checkout@v6
      - name: Cache cppcheck
        uses: actions/cache@v5
        env:
          cache-name: cache-cppcheck
        with:
          path: ~/cppcheck.local
          key: ${{ steps.os.outputs.image }}-build-${{ env.cache-name }}-${{ env.CPPCHECK_VER }}
      - run: sudo scripts/install_cppcheck_dependencies_with_apt.sh $CPPCHECK_VER
      - run: ./bootstrap
      - run: ./configure
      - run: scripts/install_cppcheck.sh $CPPCHECK_REPO $CPPCHECK_VER
      - run: scripts/run_cppcheck.sh -v $CPPCHECK_VER

  code_formatting_check:
    name: code formatting check
    runs-on: ubuntu-22.04
    env:
      CC: gcc
      # This is required to use a version of astyle other than that
      # supplied with the operating system
      ASTYLE_VER: 3.4.14
      ASTYLE_REPO: https://gitlab.com/saalen/astyle.git
    steps:
      # Set steps.os.outputs.image to the specific OS (e.g. 'ubuntu20')
      - name: Get operating system name and version.
        id: os
        run: echo "image=$ImageOS" >>$GITHUB_OUTPUT
        shell: bash
      - uses: actions/checkout@v6
      - name: Cache astyle
        uses: actions/cache@v5
        env:
          cache-name: cache-astyle
        with:
          path: ~/astyle.local
          key: ${{ steps.os.outputs.image }}-build-${{ env.cache-name }}-${{ env.ASTYLE_VER }}
      - run: sudo scripts/install_astyle_dependencies_with_apt.sh
      - run: scripts/install_astyle.sh $ASTYLE_REPO $ASTYLE_VER
      - name: Format code with astyle
        run: scripts/run_astyle.sh -v $ASTYLE_VER
      - name: Check code formatting
        run: git diff --exit-code

  build_on_freebsd:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        freebsd-version: ["15.0", "14.4"]
        ssl: ["", "libressl"]
    name: FreeBSD ${{ matrix.freebsd-version }} Build with ${{ matrix.ssl || 'base openssl' }}
    env:
      CPPFLAGS: "-I/usr/local/include"
      LDFLAGS: "-L/usr/local/lib "
      SSL: ${{ matrix.ssl }}
    steps:
    - name: checkout sources
      uses: actions/checkout@v6
      with:
        submodules: recursive
    - name: test run
      uses: vmactions/freebsd-vm@v1
      with:
        release: ${{ matrix.freebsd-version }}
        envs: 'CPPFLAGS LDFLAGS SSL'
        prepare: |
          pkg install -y $SSL git autoconf automake libtool pkgconf opus jpeg-turbo fdk-aac pixman libX11 libXfixes libXrandr libxkbfile nasm fusefs-libs3 check imlib2 freetype2 cmocka ibus
        run: |
          ./bootstrap
          ./configure --localstatedir=/var --enable-strict-locations --with-pkgconfigdir=/usr/local/libdata/pkgconfig --enable-strict-locations --enable-ibus --enable-ipv6 --enable-opus --enable-jpeg --enable-fdkaac --enable-painter --enable-pixman --enable-fuse --with-imlib2 --with-freetype2
          make -j $(nproc || echo 4)
          make check
          make install
          /usr/local/sbin/xrdp -v


[Dauer der Verarbeitung: 0.12 Sekunden, vorverarbeitet 2026-07-10]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik