From 1391a31c35bee576f56bd57b41f28601502131fb Mon Sep 17 00:00:00 2001 From: Vladimir Dubrovin <3proxy@3proxy.ru> Date: Mon, 6 Apr 2026 11:29:56 +0300 Subject: [PATCH] Update workflows --- .github/workflows/build-winarm64.yml | 2 +- .github/workflows/c-cpp-Linux.yml | 36 ++++++++++++++ .github/workflows/c-cpp-MacOS.yml | 34 +++++++++++++ .github/workflows/c-cpp-Windows.yml | 49 +++++++++++++++++++ .../workflows/{c-cpp.yml => c-cpp-cmake.yml} | 45 +++-------------- 5 files changed, 126 insertions(+), 40 deletions(-) create mode 100644 .github/workflows/c-cpp-Linux.yml create mode 100644 .github/workflows/c-cpp-MacOS.yml create mode 100644 .github/workflows/c-cpp-Windows.yml rename .github/workflows/{c-cpp.yml => c-cpp-cmake.yml} (56%) diff --git a/.github/workflows/build-winarm64.yml b/.github/workflows/build-winarm64.yml index 89b59cb..2a27f28 100644 --- a/.github/workflows/build-winarm64.yml +++ b/.github/workflows/build-winarm64.yml @@ -3,7 +3,7 @@ name: Build Win-arm64 3proxy with MSVC on: push: branches: [ "master" ] - paths: [ 'RELEASE', '.github/workflows/build-win32.yml' ] + paths: [ 'RELEASE', '.github/workflows/build-winarm64.yml' ] jobs: ci: diff --git a/.github/workflows/c-cpp-Linux.yml b/.github/workflows/c-cpp-Linux.yml new file mode 100644 index 0000000..a02e4af --- /dev/null +++ b/.github/workflows/c-cpp-Linux.yml @@ -0,0 +1,36 @@ +name: C/C++ CI Linux + +on: + push: + branches: [ "master" ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp.yml' ] + pull_request: + branches: [ "master" ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp.yml' ] + +jobs: + ci: + name: "${{ matrix.target }}" + strategy: + matrix: + target: + - ubuntu-latest + - ubuntu-24.04-arm + - macos-15 + - windows-2022 + runs-on: ${{ matrix.target }} + steps: + - uses: actions/checkout@v4 +# - name: configure +# run: ./configure + - name: Linux libraries + if: ${{ startsWith(matrix.target, 'ubuntu') }} + run: sudo apt install libssl-dev libpam-dev libpcre2-dev + - name: make + run: make -f Makefile.Linux + - name: mkdir + run: mkdir ~/3proxy + - name: make install + run: make -f Makefile.Linux DESTDIR=~/3proxy install + - name: make clean Linux + run: make -f Makefile.Linux clean diff --git a/.github/workflows/c-cpp-MacOS.yml b/.github/workflows/c-cpp-MacOS.yml new file mode 100644 index 0000000..7effe30 --- /dev/null +++ b/.github/workflows/c-cpp-MacOS.yml @@ -0,0 +1,34 @@ +name: C/C++ CI MacOS + +on: + push: + branches: [ "master" ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp-MacOS.yml' ] + pull_request: + branches: [ "master" ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp-MacOS.yml' ] + +jobs: + ci: + name: "${{ matrix.target }}" + strategy: + matrix: + target: + - macos-15 + runs-on: ${{ matrix.target }} + steps: + - uses: actions/checkout@v4 +# - name: configure +# run: ./configure + - name: Mac libraries + if: ${{ startsWith(matrix.target, 'macos') }} + run: brew install pcre2 + - name: make MacOS + if: ${{ startsWith(matrix.target, 'macos') }} + run: make -f Makefile.FreeBSD + env: + LDFLAGS: "-L/usr/local/lib -L/opt/homebrew/lib -L/opt/homebrew/opt/openssl/lib" + CFLAGS: "-I/usr/local/include -I/opt/homebrew/include -I/usr/local/opt/openssl/include -I/opt/homebrew/opt/openssl/include" + - name: make clean MacOS + if: ${{ startsWith(matrix.target, 'macos') }} + run: make -f Makefile.FreeBSD clean diff --git a/.github/workflows/c-cpp-Windows.yml b/.github/workflows/c-cpp-Windows.yml new file mode 100644 index 0000000..0da8353 --- /dev/null +++ b/.github/workflows/c-cpp-Windows.yml @@ -0,0 +1,49 @@ +name: C/C++ CI Windows + +on: + push: + branches: [ "master" ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp-Windows.yml' ] + pull_request: + branches: [ "master" ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp-Windows.yml' ] + +jobs: + ci: + name: "${{ matrix.target }}" + strategy: + matrix: + target: + - ubuntu-latest + - ubuntu-24.04-arm + - macos-15 + - windows-2022 + runs-on: ${{ matrix.target }} + steps: + - uses: actions/checkout@v4 + - name: install Windows libraries + if: ${{ startsWith(matrix.target, 'windows') }} + run: vcpkg install pcre2:x64-windows && c:\msys64\usr\bin\pacman.exe -S --noconfirm mingw-w64-x86_64-pcre2 mingw-w64-x86_64-openssl + - name: make Windows + if: ${{ startsWith(matrix.target, 'windows') }} + run: make -f Makefile.win + env: + LDFLAGS: '-L "c:/msys64/mingw64/lib"' + CFLAGS: '-I "c:/msys64/mingw64/include"' + - name: make clean Windows + if: ${{ startsWith(matrix.target, 'windows') }} + run: make -f Makefile.win clean + - name: Add msbuild to PATH + if: ${{ startsWith(matrix.target, 'windows') }} + uses: microsoft/setup-msbuild@v3 + - name: make Windows MSVC + if: ${{ startsWith(matrix.target, 'windows') }} + shell: cmd + run: | + call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + D: + cd "D:/a/3proxy/3proxy" + set "LIB=%LIB%;c:/program files/openssl/lib/VC/x64/MT;c:/vcpkg/installed/x64-windows/lib" + set "INCLUDE=%INCLUDE%;c:/program files/openssl/include;c:/vcpkg/installed/x64-windows/include" + nmake /F Makefile.msvc + nmake /F Makefile.msvc clean diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp-cmake.yml similarity index 56% rename from .github/workflows/c-cpp.yml rename to .github/workflows/c-cpp-cmake.yml index e9f94d3..3dded31 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp-cmake.yml @@ -1,12 +1,12 @@ -name: C/C++ CI +name: C/C++ CI cmake on: push: branches: [ "master" ] - paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp.yml' ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp-cmake.yml' ] pull_request: branches: [ "master" ] - paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp.yml' ] + paths: [ '**.c', '**.h', 'Makefile.**', '.github/configs', '.github/workflows/c-cpp-cmake.yml' ] jobs: ci: @@ -26,18 +26,6 @@ jobs: - name: Linux libraries if: ${{ startsWith(matrix.target, 'ubuntu') }} run: sudo apt install libssl-dev libpam-dev libpcre2-dev - - name: make Ubuntu - if: ${{ startsWith(matrix.target, 'ubuntu') }} - run: make -f Makefile.Linux - - name: mkdir - if: ${{ startsWith(matrix.target, 'ubuntu') }} - run: mkdir ~/3proxy - - name: make install - if: ${{ startsWith(matrix.target, 'ubuntu') }} - run: make -f Makefile.Linux DESTDIR=~/3proxy install - - name: make clean Linux - if: ${{ startsWith(matrix.target, 'ubuntu') }} - run: make -f Makefile.Linux clean - name: Mac libraries if: ${{ startsWith(matrix.target, 'macos') }} run: brew install pcre2 @@ -53,32 +41,9 @@ jobs: - name: install Windows libraries if: ${{ startsWith(matrix.target, 'windows') }} run: vcpkg install pcre2:x64-windows && c:\msys64\usr\bin\pacman.exe -S --noconfirm mingw-w64-x86_64-pcre2 mingw-w64-x86_64-openssl - - name: make Windows - if: ${{ startsWith(matrix.target, 'windows') }} - run: make -f Makefile.win - env: - LDFLAGS: '-L "c:/msys64/mingw64/lib"' - CFLAGS: '-I "c:/msys64/mingw64/include"' - - name: make clean Windows - if: ${{ startsWith(matrix.target, 'windows') }} - run: make -f Makefile.win clean - - name: Add msbuild to PATH - if: ${{ startsWith(matrix.target, 'windows') }} - uses: microsoft/setup-msbuild@v3 - - name: make Windows MSVC - if: ${{ startsWith(matrix.target, 'windows') }} - shell: cmd - run: | - call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - D: - cd "D:/a/3proxy/3proxy" - set "LIB=%LIB%;c:/program files/openssl/lib/VC/x64/MT;c:/vcpkg/installed/x64-windows/lib" - set "INCLUDE=%INCLUDE%;c:/program files/openssl/include;c:/vcpkg/installed/x64-windows/include" - nmake /F Makefile.msvc - nmake /F Makefile.msvc clean - name: make with CMake POSIX if: ${{ ! startsWith(matrix.target, 'windows') }} - run: mkdir build && cd build && cmake .. && cmake --build . + run: mkdir build && cd build && cmake .. && cmake --build && mkdir ~/3proxy && DESTDIR=~/3proxy cmake --install . && cd .. && rm -rf build/ - name: make with CMake Win if: ${{ startsWith(matrix.target, 'windows') }} shell: cmd @@ -90,3 +55,5 @@ jobs: cmake .. dir cmake --build . + cd .. + rmdir /s /q build