name: Release Create & Build on: push: # Sequence of patterns matched against refs/tags tags: - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 env: BUILD_TYPE: Release jobs: create-release: runs-on: ubuntu-latest name: Create Release outputs: upload_url: ${{ steps.create_release.outputs.upload_url }} steps: - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: Release ${{ github.ref }} draft: false prerelease: false upload-release-files-linux: name: Upload Linux Release Files runs-on: ubuntu-latest needs: create-release steps: - uses: actions/checkout@v2 - name: Install Dependencies run: | sudo apt-get update sudo apt-get install -y libz-dev rapidjson-dev liblua5.3 libssl-dev sudo add-apt-repository ppa:mhier/libboost-latest sudo apt-get install -y libboost1.70-dev libboost1.70 - name: Create Build Environment run: cmake -E make_directory ${{github.workspace}}/build-linux - name: Configure CMake shell: bash working-directory: ${{github.workspace}}/build-linux run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_CXX_COMPILER=g++-10 - name: Build working-directory: ${{github.workspace}}/build-linux shell: bash run: cmake --build . --config $BUILD_TYPE - name: Upload Release Asset id: upload-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ${{github.workspace}}/build-linux/BeamMP-Server asset_name: BeamMP-Server-linux asset_content_type: application/x-elf upload-release-files-windows: name: Upload Windows Release Files runs-on: windows-latest needs: create-release steps: - uses: actions/checkout@v2 - name: Restore artifacts, or run vcpkg, build and cache artifacts uses: lukka/run-vcpkg@main id: runvcpkg with: vcpkgArguments: 'lua zlib rapidjson boost-beast boost-asio openssl' vcpkgDirectory: '${{ runner.workspace }}/b/vcpkg' vcpkgGitCommitId: '30124253eecff36bc90f73341edbfb4f845e2a1e' vcpkgTriplet: 'x64-windows-static' appendedCacheKey: ${{ hashFiles( '**/vcpkg_manifest/vcpkg.json' ) }} additionalCachedPaths: ${{ env.buildDir }}/vcpkg_installed - name: Create Build Environment run: cmake -E make_directory ${{github.workspace}}/build-windows - name: Configure CMake shell: bash working-directory: ${{github.workspace}}/build-windows run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE='${{ runner.workspace }}/b/vcpkg/scripts/buildsystems/vcpkg.cmake' -DVCPKG_TARGET_TRIPLET=x64-windows-static - name: Build working-directory: ${{github.workspace}}/build-windows shell: bash run: cmake --build . --config $BUILD_TYPE - name: Upload Release Asset id: upload-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ needs.create-release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ${{github.workspace}}/build-windows/Release/BeamMP-Server.exe asset_name: BeamMP-Server.exe asset_content_type: application/vnd.microsoft.portable-executable