diff --git a/.github/workflows/analysis_codeql.yml b/.github/workflows/analysis_codeql.yml index 463286f71f..692a03e5f5 100644 --- a/.github/workflows/analysis_codeql.yml +++ b/.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 diff --git a/.github/workflows/build_servers_modes.yml b/.github/workflows/build_servers_modes.yml index a0272f7a7e..73d48ff202 100644 --- a/.github/workflows/build_servers_modes.yml +++ b/.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 diff --git a/.github/workflows/build_servers_packetversions.yml b/.github/workflows/build_servers_packetversions.yml index 7fc9d988d9..0455c46dfd 100644 --- a/.github/workflows/build_servers_packetversions.yml +++ b/.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 . diff --git a/.github/workflows/build_servers_vip.yml b/.github/workflows/build_servers_vip.yml index 9894aa0555..553d9f63fa 100644 --- a/.github/workflows/build_servers_vip.yml +++ b/.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 diff --git a/.github/workflows/npc_db_validation.yml b/.github/workflows/npc_db_validation.yml index e0136d13ab..f6d6fa50d3 100644 --- a/.github/workflows/npc_db_validation.yml +++ b/.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 - + + - name: Create build directory + run: cmake -E make_directory ${{github.workspace}}/build + + - name: Configure CMake + working-directory: ${{github.workspace}}/build + run: cmake .. -DENABLE_PRERENEWAL=${{env.PRERE}} -DENABLE_EXTRA_BUILDBOT_CODE=ON + + - 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: Command - make clean - run: make clean - - # Create import directories - - name: Command - make import - run: make import - - - name: Command - make map - run: make map - - name: Run Once - map-server run: ./map-server --run-once