diff --git a/.github/workflows/ci-macOS.yml b/.github/workflows/ci-macOS.yml new file mode 100644 index 000000000..016dfbd8b --- /dev/null +++ b/.github/workflows/ci-macOS.yml @@ -0,0 +1,95 @@ +name: macOS Build + +on: + push: + paths-ignore: + - '**/*.md' + pull_request: + paths-ignore: + - '**/*.md' + +concurrency: + group: ${{ github.workflow}}-${{ github.head_ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + build: + runs-on: macos-14 + permissions: + actions: write + defaults: + run: + shell: bash + + steps: + - name: Setup XCode + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: 15.0.1 + + - name: Show current version of Xcode + run: xcodebuild -version + + - name: Checkout repository RetroShare + uses: actions/checkout@v6 + with: + persist-credentials: false + repository: 'RetroShare/RetroShare' + submodules: 'false' + + - name: Setup Homebrew + id: set-up-homebrew + uses: Homebrew/actions/setup-homebrew@main + + - name: Show OpenSSL version + run: pkg-config --cflags libcrypto + + - name: Install Packages + run: brew install openssl + miniupnpc + rapidjson + sqlcipher + bzip2 + zlib + botan@2 + libxslt + libxml2 + qt + + - name: Checkout submodules + run: | + env + git submodule update --init --remote libbitdht/ libretroshare/ retroshare-webui/ + git submodule update --init supportlibs/librnp supportlibs/rapidjson supportlibs/restbed openpgpsdk/ + + - name: CI-Build + run: | + qmake6 . -r \ + "CONFIG+=rs_macos14.0" \ + "CONFIG+=debug" \ + "CONFIG+=release" \ + "CONFIG+=rs_autologin" \ + "CONFIG+=wikipoos" \ + "CONFIG+=gxsthewire" \ + "CONFIG+=retroshare_plugins" \ + "CONFIG+=no_rs_sam3" \ + "CONFIG+=no_rs_sam3_libsam3" \ + "CONFIG+=rs_no_rnplib" \ + INCLUDEPATH+="/opt/homebrew/opt/openssl@3/include" \ + INCLUDEPATH+="/opt/homebrew/opt/rapidjson/include" \ + INCLUDEPATH+="/opt/homebrew/opt/sqlcipher/include" \ + INCLUDEPATH+="/opt/homebrew/opt/miniupnpc/include" \ + INCLUDEPATH+="/opt/homebrew/opt/libxslt/include" \ + INCLUDEPATH+="/opt/homebrew/opt/libxml2/include" \ + QMAKE_LIBDIR+="/opt/homebrew/opt/openssl@3/lib" \ + QMAKE_LIBDIR+="/opt/homebrew/opt/rapidjson/lib" \ + QMAKE_LIBDIR+="/opt/homebrew/opt/sqlcipher/lib" \ + QMAKE_LIBDIR+="/opt/homebrew/opt/miniupnpc/lib" \ + QMAKE_LIBDIR+="/opt/homebrew/opt/libxslt/lib" \ + QMAKE_LIBDIR+="/opt/homebrew/opt/libxml2/lib" \ + CONFIG+=no_retroshare_service \ + CONFIG+=no_retroshare_friendserver + make diff --git a/.github/workflows/ci-mingw64.yml b/.github/workflows/ci-mingw64.yml index 28f9f2d32..a4e1cdcc4 100644 --- a/.github/workflows/ci-mingw64.yml +++ b/.github/workflows/ci-mingw64.yml @@ -25,10 +25,13 @@ jobs: shell: msys2 {0} steps: - - name: Checkout repository - uses: actions/checkout@v4 + # Checkout RetroShare: it is needed, because libretroshare.pro is looking for retroshare.pri + - name: Checkout repository RetroShare + uses: actions/checkout@v6 with: persist-credentials: false + repository: 'RetroShare/RetroShare' + submodules: 'false' - name: Setup MSYS2 uses: msys2/setup-msys2@40677d36a502eb2cf0fb808cc9dec31bf6152638 # v2.28.0 @@ -58,6 +61,11 @@ jobs: mingw-w64-x86_64-libbotan mingw-w64-x86_64-asio + - name: list directory and print working directory + run: | + pwd + ls -la + - name: Checkout submodules run: | env @@ -66,5 +74,13 @@ jobs: - name: CI-Build run: | - qmake . -r -spec win32-g++ "CONFIG+=release" "CONFIG+=rs_autologin" "CONFIG+=no_rs_sam3" "CONFIG+=no_rs_sam3_libsam3" + qmake . -r -spec win32-g++ \ + "CONFIG+=debug" \ + "CONFIG+=release" \ + "CONFIG+=rs_autologin" \ + "CONFIG+=wikipoos" \ + "CONFIG+=gxsthewire" \ + "CONFIG+=retroshare_plugins" \ + "CONFIG+=no_rs_sam3" \ + "CONFIG+=no_rs_sam3_libsam3" mingw32-make -j3 diff --git a/.github/workflows/ubuntu-qt6_c-cpp.yml b/.github/workflows/ubuntu-qt6_c-cpp.yml new file mode 100644 index 000000000..6834208f5 --- /dev/null +++ b/.github/workflows/ubuntu-qt6_c-cpp.yml @@ -0,0 +1,53 @@ +name: Ubuntu Qt 6 C/C++ CI + +on: + push: + paths-ignore: + - '**/*.md' + pull_request: + paths-ignore: + - '**/*.md' + +concurrency: + group: ${{ github.workflow}}-${{ github.head_ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-24.04 + steps: + # Checkout RetroShare: it is needed, because libretroshare.pro is looking for retroshare.pri + - name: Checkout repository RetroShare + uses: actions/checkout@v6 + with: + persist-credentials: false + repository: 'RetroShare/RetroShare' + submodules: 'false' + - name: git init submodules + run: git submodule update --init --remote libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/ && git --no-pager log --max-count 1 + - name: git submodule supportlibs + run: git submodule update --init supportlibs/librnp supportlibs/restbed #supportlibs/rapidjson + - name: run apt update + run: sudo apt-get update + - name: apt install + run: sudo apt-get install g++ cmake qt6-base-dev qt6-multimedia-dev libasio-dev libbz2-dev libjson-c-dev libssl-dev libsqlcipher-dev libupnp-dev libxss-dev rapidjson-dev libbotan-2-dev doxygen qt6-5compat-dev libqt6core5compat6-dev libsecret-1-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev + - name: print working directory and list directory + run: pwd && ls -la + - name: qmake + run: | + qmake6 \ + CONFIG+=debug \ + CONFIG+=release \ + CONFIG+=rs_autologin \ + CONFIG+=rs_webui \ + CONFIG+=rs_jsonapi \ + CONFIG+=wikipoos \ + CONFIG+=gxsthewire \ + CONFIG+=retroshare_plugins + - name: make + run: make + - name: make check + run: make check