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: ${{ github.ref }} draft: false prerelease: true body: | Files included in this release: - `BeamMP-Server.exe` is the windows build - `BeamMP-Server-linux` is a ubuntu build. You will need to install `liblua5.3-0`. upload-release-files-linux: name: Upload Linux Release Files runs-on: ubuntu-22.04 needs: create-release steps: - uses: actions/checkout@v2 with: submodules: "recursive" - name: Install Dependencies run: | sudo bash ./scripts/debian/1-install-deps.sh cmake -E make_directory ${{github.workspace}}/build-linux - name: Create Build Environment working-directory: ${{github.workspace}}/build-linux run: bash ${{github.workspace}}/scripts/debian/2-configure.sh - name: Build Server working-directory: ${{github.workspace}}/build-linux run: bash ${{github.workspace}}/scripts/debian/3-build.sh - name: Archive server artifact uses: actions/upload-artifact@v2 with: name: BeamMP-Server-linux path: ${{github.workspace}}/build-linux/BeamMP-Server - 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 with: submodules: 'recursive' - name: Restore artifacts, or run vcpkg, build and cache artifacts uses: lukka/run-vcpkg@v7 id: runvcpkg with: vcpkgArguments: 'lua zlib rapidjson openssl websocketpp curl' vcpkgDirectory: '${{ runner.workspace }}/b/vcpkg' vcpkgGitCommitId: '16ee2ecb31788c336ace8bb14c21801efb6836e4' vcpkgTriplet: 'x64-windows-static' - name: Create Build Environment run: cmake -E make_directory ${{github.workspace}}/build-windows - name: Configure CMake shell: bash working-directory: ${{github.workspace}}/build-windows env: beammp_sentry_url: ${{ secrets.BEAMMP_SECRET_SENTRY_URL }} run: cmake $GITHUB_WORKSPACE -DSENTRY_BACKEND=breakpad -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE='${{ runner.workspace }}/b/vcpkg/scripts/buildsystems/vcpkg.cmake' -DVCPKG_TARGET_TRIPLET=x64-windows-static -DBEAMMP_SECRET_SENTRY_URL="$beammp_sentry_url" - 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