CMaNGOS Classic Windows Release #1256
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CMaNGOS Classic Windows Release | |
| # use manual run | |
| #on: [workflow_dispatch] | |
| # use schedule | |
| on: | |
| schedule: | |
| # every day at 6am | |
| - cron: '0 6 * * *' | |
| env: | |
| # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
| CORE_TYPE: "cmangos" | |
| CORE_EXPANSION: "classic" | |
| CORE_BRANCH: "ike3-bots" | |
| BOTS_BRANCH: "master" | |
| CORE_REPO_OWNER: ${{github.repository_owner}} | |
| BUILD_TYPE: RelWithDebInfo | |
| BUILD_OPTIONS: "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=TRUE -DBUILD_EXTRACTORS=ON -DBUILD_PLAYERBOTS=ON -DBUILD_AHBOT=ON -DBUILD_GIT_ID=ON -DBUILD_MODULES=ON -DBUILD_MODULE_ACHIEVEMENTS=ON -DBUILD_MODULE_DUALSPEC=ON -DBUILD_MODULE_HARDCORE=ON -DBUILD_MODULE_IMMERSIVE=ON -DBUILD_MODULE_TRANSMOG=ON -DBUILD_MODULE_BOOST=ON -DBUILD_MODULE_BARBER=ON -DBUILD_MODULE_TRAININGDUMMIES=ON -DBUILD_MODULE_BALANCING=ON" | |
| REPO_DIR : ${{github.workspace}} | |
| BUILD_DIR: ${{github.workspace}}/bin/builddir | |
| BOOST_TOOLSET: "msvc" | |
| BOOST_VERSION: "1.86.0" | |
| ARCHIVE_FILENAME: "cmangos-classic.zip" | |
| jobs: | |
| build: | |
| runs-on: windows-2022 | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout CMaNGOS Classic | |
| uses: actions/checkout@v2 | |
| with: | |
| ref: ${{env.CORE_BRANCH}} | |
| repository: ${{env.CORE_REPO_OWNER}}/mangos-classic | |
| path: ${{env.REPO_DIR}} | |
| - uses: FranzDiebold/github-env-vars-action@v2 | |
| - name: Create Build Environment | |
| run: | | |
| cmake -E make_directory ${{ env.BUILD_DIR }} | |
| ## install dependencies | |
| - name: Install Boost | |
| uses: MarkusJx/[email protected] | |
| id: install-boost | |
| with: | |
| # REQUIRED: Specify the required boost version | |
| # A list of supported versions can be found here: | |
| # https://github.com/MarkusJx/prebuilt-boost/blob/main/versions-manifest.json | |
| boost_version: ${{env.BOOST_VERSION}} | |
| # OPTIONAL: Specify a platform version | |
| platform_version: ${{env.BOOST_PLATFORM_VERSION}} | |
| # OPTIONAL: Specify a toolset | |
| toolset: ${{env.BOOST_TOOLSET}} | |
| # NOTE: If a boost version matching all requirements cannot be found, | |
| # this build step will fail | |
| - name: Configure | |
| env: | |
| BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }} | |
| run: cmake ${{env.BUILD_OPTIONS}} -B ${{env.BUILD_DIR}} -S ${{env.REPO_DIR}} | |
| - name: Build | |
| env: | |
| MAKEFLAGS: "-j8" | |
| run: cmake --build ${{env.BUILD_DIR}} --config ${{env.BUILD_TYPE}} | |
| - name: Archive files | |
| run: | | |
| cd ${{env.BUILD_DIR}}/bin | |
| 7z a -tzip ${{env.ARCHIVE_FILENAME}} "x64_${{env.BUILD_TYPE}}\*" | |
| - name: Archive this artefact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: snapshot-${{env.CORE_EXPANSION}} | |
| path: "${{env.BUILD_DIR}}/bin/${{env.ARCHIVE_FILENAME}}" | |
| upload: | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| contents: write # for marvinpinto/action-automatic-releases to generate pre-release | |
| needs: build | |
| steps: | |
| #- name: Download artifact snapshot-default | |
| # uses: actions/download-artifact@v1 | |
| # with: | |
| # name: snapshot-default | |
| # path: all_snapshots | |
| - name: Download artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: snapshot-${{env.CORE_EXPANSION}} | |
| path: all_snapshots | |
| - name: Get current date | |
| id: date | |
| run: echo "::set-output name=date::$(date +'%Y-%m-%d')" | |
| #- name: Upload binaries to release | |
| # uses: svenstaro/upload-release-action@v2 | |
| # with: | |
| # repo_token: ${{ secrets.GITHUB_TOKEN }} | |
| # file: all_snapshots/cmangos-classic.zip | |
| #- name: Upload release | |
| # uses: "marvinpinto/action-automatic-releases@latest" | |
| # with: | |
| # repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
| # automatic_release_tag: "r-${{ steps.date.outputs.date }}" | |
| # prerelease: false | |
| # title: "Windows Build (${{ steps.date.outputs.date }})" | |
| # files: all_snapshots | |
| - name: Upload binaries to release | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| release_name: "Windows Build (${{ steps.date.outputs.date }})" | |
| tag: "r-${{ steps.date.outputs.date }}" | |
| repo_token: ${{ secrets.GITHUB_TOKEN }} | |
| file: all_snapshots/${{env.ARCHIVE_FILENAME}} | |
| overwrite: true | |
| notify-success: | |
| name: Discord release successfully notification | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| contents: none | |
| needs: | |
| - upload | |
| steps: | |
| - name: Get current date | |
| id: date | |
| run: echo "::set-output name=date::$(date +'%Y-%m-%d')" | |
| - name: Get previous date | |
| id: dateprev | |
| run: echo "::set-output name=date::$(date --date='1 day ago' +'%Y-%m-%d')" | |
| - name: Notify | |
| uses: rjstone/[email protected] | |
| with: | |
| severity: info | |
| username: ${{env.CORE_TYPE}}-${{env.CORE_EXPANSION}} | |
| description: | | |
| **Classic Dev Build ${{ steps.date.outputs.date }}!** | |
| details: | | |
| [**Changelog**](${{github.server_url}}/${{ github.repository }}/compare/r-${{ steps.dateprev.outputs.date }}...r-${{ steps.date.outputs.date }}) - [**All Releases**](${{github.server_url}}/${{ github.repository }}/tags) - [**Build Log**](${{github.server_url}}/${{github.repository}}/actions/runs/${{github.run_id}}) | |
| [**Download Windows Binaries**](${{github.server_url}}/${{ github.repository }}/releases/download/r-${{ steps.date.outputs.date }}/${{env.ARCHIVE_FILENAME}}) | |
| footer: Build success | |
| webhookUrl: ${{ secrets.DISCORD_WEBHOOK_BUILD }} | |
| avatarUrl: https://github.githubassets.com/favicons/favicon-success.png | |
| notify: | |
| name: Discord Notification | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| contents: none | |
| needs: # make sure the notification is sent AFTER the jobs you want included have completed | |
| - build | |
| if: failure() | |
| steps: | |
| - name: Get current date | |
| id: date | |
| run: echo "::set-output name=date::$(date +'%Y-%m-%d')" | |
| - name: Notify | |
| uses: rjstone/[email protected] | |
| with: | |
| severity: error | |
| username: ${{env.CORE_TYPE}}-${{env.CORE_EXPANSION}} | |
| description: | | |
| **Classic Dev Build failed!** | |
| details: | | |
| [**Last commits**](${{github.server_url}}/${{ github.repository }}/commits/${{env.BOTS_BRANCH}}) - [**Build Log**](${{github.server_url}}/${{github.repository}}/actions/runs/${{github.run_id}}) | |
| footer: Build fail | |
| webhookUrl: ${{ secrets.DISCORD_WEBHOOK_BUILD }} | |
| avatarUrl: https://github.githubassets.com/favicons/favicon-failure.png |