From 0de6858e9548e84aebc148747be92a811ba33636 Mon Sep 17 00:00:00 2001
From: vharseko <vharseko@3a-systems.ru>
Date: Wed, 12 Jul 2023 16:41:15 +0000
Subject: [PATCH] Restore IT test for server-legacy and fix many errors (#279)

---
 .github/workflows/build.yml |   48 ++++++++++++++++++++++++++----------------------
 1 files changed, 26 insertions(+), 22 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4f65daf..ba727b6 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,32 +12,20 @@
       matrix:
         java: [ '8','11','17','19']
         os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ]
+      fail-fast: false
     steps:
     - name:  Install wine+rpm for distribution
       if: runner.os == 'Linux'
       shell: bash
       run:   |
-          set -x -u -o pipefail
-          source /etc/os-release
-          # https://github.com/actions/runner-images/issues/7192
-          echo 'APT::Get::Always-Include-Phased-Updates "false";' | sudo tee /etc/apt/apt.conf.d/99-phased-updates
-          # Get rid of packages installed from ppa:ondrej/php so that we will be able to install wine32:i386 without conflicts
-          # (see issue https://github.com/actions/virtual-environments/issues/4589)
-          # In detail we:
-          #   1. Remove all packages that ppa:ondrej/php has but plain Ubuntu doesn't, i.e. libzip4 and everything PHP
-          #   2. Revert (remaining) packages that ppa:ondrej/php and plain Ubuntu share, back to the plain Ubuntu version
-          #   3. Assert that no packages from ppa:ondrej/php are left installed
-          (dpkg -l | grep '^ii' | fgrep deb.sury.org | awk '{print $2}' | grep '^php' | xargs -r -t sudo apt-get remove --yes libzip4) || echo ""
-          sudo apt update && sudo apt upgrade
-          (dpkg -l | grep '^ii' | fgrep deb.sury.org | grep -v libpcre2-posix3 | awk '{print $2}' | sed "s,\$,/${UBUNTU_CODENAME}," | xargs -r -t sudo apt-get install --yes --no-install-recommends --allow-downgrades -V) || echo ""
-          ! dpkg -l | grep '^ii' | fgrep deb.sury.org
-          # Install 32bit Wine
-          sudo dpkg --add-architecture i386  # for wine32
-          sudo apt-get update  # again, due to new architecture
-          sudo apt-get install --yes --no-install-recommends -V \
-              wine-stable \
-              wine32:i386
-          wine --version
+        sudo apt-get install ppa-purge && sudo ppa-purge -y ppa:ubuntu-toolchain-r/test
+        sudo dpkg --add-architecture i386
+        sudo mkdir -pm755 /etc/apt/keyrings && sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
+        sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
+        sudo apt-get update
+        sudo apt install --install-recommends winehq-stable
+        sudo mkdir -p /opt/wine/mono && sudo wget "https://dl.winehq.org/wine/wine-mono/8.0.0/wine-mono-8.0.0-x86.tar.xz" -P /opt/wine/mono && sudo tar -xf /opt/wine/mono/wine-mono-8.0.0-x86.tar.xz -C /opt/wine/mono && sudo rm /opt/wine/mono/wine-mono-8.0.0-x86.tar.xz
+        wine --version
     - uses: actions/checkout@v3
       with:
         fetch-depth: 0
@@ -57,6 +45,23 @@
       env:
         MAVEN_OPTS: -Dhttps.protocols=TLSv1.2 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true -Dmaven.wagon.http.retryHandler.count=10
       run: mvn --batch-mode --errors --update-snapshots package --file pom.xml
+    - name: IT test
+      id: failsafe
+      if: runner.os != 'Windows'
+      timeout-minutes: 120
+      env:
+        MAVEN_OPTS: -Dhttps.protocols=TLSv1.2 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true -Dmaven.wagon.http.retryHandler.count=10
+      run:   |
+        cat /etc/hosts
+        mvn --batch-mode --errors verify --file opendj-server-legacy/pom.xml -P precommit
+    - name: Upload IT test failiure opendj-server-legacy/target
+      uses: actions/upload-artifact@v3
+      if: failure()
+      with:
+        name: failsafe-${{ matrix.os }}-${{ matrix.java }}
+        retention-days: 5
+        path:  |
+            opendj-server-legacy/target/
     - name: Test on Unix
       if: runner.os != 'Windows'
       run:   |
@@ -109,7 +114,6 @@
           images: |
             localhost:5000/${{ github.repository }}
           tags: |
-            type=raw,value=latest
             type=raw,value=${{ env.release_version }}
       - name: Set up QEMU
         uses: docker/setup-qemu-action@v2

--
Gitblit v1.10.0