فهرست منبع

Change most github workflows to cmake

Vincent Stumpf 1 سال پیش
والد
کامیت
9024cc7ef8

+ 10 - 12
.github/workflows/analysis_codeql.yml

@@ -31,8 +31,6 @@ jobs:
           # The ubuntu-latest label currently points to ubuntu-20.04.
           # Available: ubuntu-22.04, ubuntu-20.04
           os: [ubuntu-latest]
-          # Older versions of GCC are not available via unaltered aptitude repo lists.
-          gcc: ['10']
           # We run build checks for both Renewal and PRE-Renewal
           mode: ['PRE','RE']
 
@@ -64,10 +62,10 @@ jobs:
 
       - name: Update & Install packages
         # Ubuntu runners already have most of the packages rAthena requires to build.
-        # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
+        # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2204-Readme.md
         run: |
           sudo apt update
-          sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
+          sudo apt install zlib1g-dev libpcre3-dev
 
       # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).
       # If this step fails, then you should remove it and run the build manually (see below)
@@ -77,16 +75,16 @@ jobs:
       # ✏️ If the Autobuild fails above, remove it and uncomment the following
       #    three lines and modify them (or add more) to build your code if your
       #    project uses a compiled language
-      - name: Command - configure
-        env:
-            CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-buildbot=yes'
-        run: ./configure $CONFIGURE_FLAGS
+      - name: Create build directory
+        run: cmake -E make_directory ${{github.workspace}}/build
 
-      - name: Command - make clean
-        run: make clean
+      - name: Configure CMake
+        working-directory: ${{github.workspace}}/build
+        run: cmake .. -DENABLE_PRERENEWAL=${{env.PRERE}} -DENABLE_EXTRA_BUILDBOT_CODE=ON
 
-      - name: Command - make server
-        run: make server
+      - name: Build
+        working-directory: ${{github.workspace}}/build
+        run: cmake --build . --target server
 
       - name: Perform CodeQL Analysis
         uses: github/codeql-action/analyze@v2

+ 12 - 14
.github/workflows/build_servers_modes.yml

@@ -30,8 +30,6 @@ jobs:
           # The ubuntu-latest label currently points to ubuntu-22.04.
           # Available: ubuntu-22.04, ubuntu-20.04
           os: [ubuntu-latest]
-          # Older versions of GCC are not available via unaltered aptitude repo lists.
-          gcc: ['11']
           # We run build checks for both Renewal and PRE-Renewal
           mode: ['PRE','RE']
 
@@ -42,18 +40,18 @@ jobs:
       - name: Variable Parsing - PRE
         if: ${{ matrix.mode == 'PRE' }} 
         run: |
-          echo "PRERE=yes" >> $GITHUB_ENV
+          echo "PRERE=ON" >> $GITHUB_ENV
       - name: Variable Parsing - RE
         if: ${{ matrix.mode == 'RE' }} 
         run: |
-          echo "PRERE=no" >> $GITHUB_ENV
+          echo "PRERE=OFF" >> $GITHUB_ENV
 
       - name: Update & Install packages
         # Ubuntu runners already have most of the packages rAthena requires to build.
-        # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
+        # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2204-Readme.md
         run: |
           sudo apt update
-          sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
+          sudo apt install zlib1g-dev libpcre3-dev
 
       - name: Start MySQL
         run: sudo systemctl start mysql.service
@@ -61,16 +59,16 @@ jobs:
       - name: Setup Database and import table data
         run: ./tools/ci/sql.sh
 
-      - name: Command - configure
-        env:
-            CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-buildbot=yes'
-        run: ./configure $CONFIGURE_FLAGS
+      - name: Create build directory
+        run: cmake -E make_directory ${{github.workspace}}/build
 
-      - name: Command - make clean
-        run: make clean
+      - name: Configure CMake
+        working-directory: ${{github.workspace}}/build
+        run: cmake .. -DENABLE_PRERENEWAL=${{env.PRERE}} -DENABLE_EXTRA_BUILDBOT_CODE=ON
 
-      - name: Command - make server
-        run: make server
+      - name: Build
+        working-directory: ${{github.workspace}}/build
+        run: cmake --build . --target server
 
       - name: Run Once - login-server
         run: ./login-server --run-once

+ 11 - 13
.github/workflows/build_servers_packetversions.yml

@@ -30,8 +30,6 @@ jobs:
           # The ubuntu-latest label currently points to ubuntu-22.04.
           # Available: ubuntu-22.04, ubuntu-20.04
           os: [ubuntu-latest]
-          # Older versions of GCC are not available via unaltered aptitude repo lists.
-          gcc: ['11']
           # We run build checks for both Renewal and PRE-Renewal
           mode: ['PRE','RE']
           # Check build success for different packet-versions
@@ -44,18 +42,18 @@ jobs:
       - name: Variable Parsing - PRE
         if: ${{ matrix.mode == 'PRE' }} 
         run: |
-          echo "PRERE=yes" >> $GITHUB_ENV
+          echo "PRERE=ON" >> $GITHUB_ENV
       - name: Variable Parsing - RE
         if: ${{ matrix.mode == 'RE' }} 
         run: |
-          echo "PRERE=no" >> $GITHUB_ENV
+          echo "PRERE=OFF" >> $GITHUB_ENV
 
       - name: Update & Install packages
         # Ubuntu runners already have most of the packages rAthena requires to build.
         # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
         run: |
           sudo apt update
-          sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
+          sudo apt install zlib1g-dev libpcre3-dev
 
       - name: Start MySQL
         run: sudo systemctl start mysql.service
@@ -63,13 +61,13 @@ jobs:
       - name: Setup Database and import table data
         run: ./tools/ci/sql.sh
 
-      - name: Command - configure
-        env:
-            CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-packetver=${{ matrix.packetver }} --enable-buildbot=yes'
-        run: ./configure $CONFIGURE_FLAGS
+      - name: Create build directory
+        run: cmake -E make_directory ${{github.workspace}}/build
 
-      - name: Command - make clean
-        run: make clean
+      - name: Configure CMake
+        working-directory: ${{github.workspace}}/build
+        run: cmake .. -DENABLE_PRERENEWAL=${{env.PRERE}} -DPACKETVER=${{matrix.packetver}} -DENABLE_EXTRA_BUILDBOT_CODE=ON
 
-      - name: Command - make all
-        run: make all
+      - name: Build
+        working-directory: ${{github.workspace}}/build
+        run: cmake --build .

+ 12 - 14
.github/workflows/build_servers_vip.yml

@@ -30,8 +30,6 @@ jobs:
           # The ubuntu-latest label currently points to ubuntu-22.04.
           # Available: ubuntu-22.04, ubuntu-20.04
           os: [ubuntu-latest]
-          # Older versions of GCC are not available via unaltered aptitude repo lists.
-          gcc: ['11']
           # We run build checks for both Renewal and PRE-Renewal
           mode: ['PRE', 'RE']
 
@@ -42,18 +40,18 @@ jobs:
       - name: Variable Parsing - PRE
         if: ${{ matrix.mode == 'PRE' }} 
         run: |
-          echo "PRERE=yes" >> $GITHUB_ENV
+          echo "PRERE=ON" >> $GITHUB_ENV
       - name: Variable Parsing - RE
         if: ${{ matrix.mode == 'RE' }} 
         run: |
-          echo "PRERE=no" >> $GITHUB_ENV
+          echo "PRERE=OFF" >> $GITHUB_ENV
 
       - name: Update & Install packages
         # Ubuntu runners already have most of the packages rAthena requires to build.
         # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
         run: |
           sudo apt update
-          sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
+          sudo apt install zlib1g-dev libpcre3-dev
 
       - name: Start MySQL
         run: sudo systemctl start mysql.service
@@ -61,16 +59,16 @@ jobs:
       - name: Setup Database and import table data
         run: ./tools/ci/sql.sh
 
-      - name: Command - configure
-        env:
-            CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-buildbot=yes --enable-vip=yes'
-        run: ./configure $CONFIGURE_FLAGS
-      
-      - name: Command - make clean
-        run: make clean
+      - name: Create build directory
+        run: cmake -E make_directory ${{github.workspace}}/build
 
-      - name: Command - make server
-        run: make server
+      - name: Configure CMake
+        working-directory: ${{github.workspace}}/build
+        run: cmake .. -DENABLE_PRERENEWAL=${{env.PRERE}} -DENABLE_EXTRA_BUILDBOT_CODE=ON -DENABLE_VIP=ON
+
+      - name: Build
+        working-directory: ${{github.workspace}}/build
+        run: cmake --build . --target server
 
       - name: Run Once - login-server
         run: ./login-server --run-once

+ 18 - 24
.github/workflows/npc_db_validation.yml

@@ -33,8 +33,6 @@ jobs:
           # The ubuntu-latest label currently points to ubuntu-22.04.
           # Available: ubuntu-22.04, ubuntu-20.04
           os: [ubuntu-latest]
-          # Only a single version of GCC is required for validating NPC scripts and database changes.
-          gcc: ['11']
           # We run build checks for both Renewal and PRE-Renewal
           mode: ['PRE', 'RE']
 
@@ -43,45 +41,41 @@ jobs:
       
       # A simple 'yes' and 'no' can be confusing, so we use names to display in the current job then convert them for use in the compiler.
       - name: Variable Parsing - PRE
-        if: ${{ matrix.mode == 'PRE' }} 
+        if: ${{ matrix.mode == 'PRE' }}
         run: |
-          echo "PRERE=yes" >> $GITHUB_ENV
+          echo "PRERE=ON" >> $GITHUB_ENV
       - name: Variable Parsing - RE
-        if: ${{ matrix.mode == 'RE' }} 
+        if: ${{ matrix.mode == 'RE' }}
         run: |
-          echo "PRERE=no" >> $GITHUB_ENV
+          echo "PRERE=OFF" >> $GITHUB_ENV
 
       - name: Update & Install packages
         # Ubuntu runners already have most of the packages rAthena requires to build.
-        # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md
+        # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2204-Readme.md
         run: |
           sudo apt update
-          sudo apt install zlib1g-dev libpcre3-dev gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
+          sudo apt install zlib1g-dev libpcre3-dev
           
       - name: Start MySQL
         run: sudo systemctl start mysql.service
 
       - name: Setup Database and import table data
         run: ./tools/ci/sql.sh
-          
-      - name: Command - configure
-        env:
-            CONFIGURE_FLAGS: 'CC=gcc-${{ matrix.gcc }} CXX=g++-${{ matrix.gcc }} --enable-prere=${{ env.PRERE }} --enable-buildbot=yes'
-        run: ./configure $CONFIGURE_FLAGS
-      
-      # npc.sh enables all NPC scripts in the custom and test folders.
-      - name: Enable All NPCs for Testing
-        run: ./tools/ci/npc.sh
 
-      - name: Command - make clean
-        run: make clean
+      - name: Create build directory
+        run: cmake -E make_directory ${{github.workspace}}/build
 
-      # Create import directories
-      - name: Command - make import
-        run: make import
+      - name: Configure CMake
+        working-directory: ${{github.workspace}}/build
+        run: cmake .. -DENABLE_PRERENEWAL=${{env.PRERE}} -DENABLE_EXTRA_BUILDBOT_CODE=ON
 
-      - name: Command - make map
-        run: make map
+      - name: Build
+        working-directory: ${{github.workspace}}/build
+        run: cmake --build . --target map-server
+
+      # npc.sh enables all NPC scripts in the custom and test folders.
+      - name: Enable All NPCs for Testing
+        run: ./tools/ci/npc.sh
 
       - name: Run Once - map-server
         run: ./map-server --run-once