| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- name: Master Build
- on:
- push:
- # branches: [ master ]
- tags:
- - 'v2.*'
- jobs:
- create_release:
- name: Prepare a new release
- # Really?
- runs-on: ubuntu-latest
- outputs:
- create_release_url: ${{ steps.create_release.outputs.upload_url }}
-
- steps:
- - name: Create release on repository
- id: create_release
- uses: actions/create-release@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- tag_name: "autobuild-${{ github.run_number }}"
- release_name: "ENet Native Libraries (Autobuild ${{ github.run_number }})"
- body: "This is an automated build of the ENet native libraries, and is up to date with the latest commits. The attached per-platform archives contain ENet built in both production and debug environments."
- draft: false
- prerelease: false
- # START LINUX BUILD JOB
- build_linux64:
- name: Build for Linux x64
- needs: create_release
- runs-on: ubuntu-latest
- steps:
- - name: Grab the latest copy of the repository.
- uses: actions/checkout@v2
-
- - name: Create temporary staging directories.
- run: |
- mkdir -p ${{ runner.workspace }}/ReleaseTemp/Release
- mkdir -p ${{ runner.workspace }}/ReleaseTemp/Debug
- - name: Configure and build release binary.
- uses: ashutoshvarma/action-cmake-build@master
- with:
- build-dir: ${{ runner.workspace }}/build-release
- cc: gcc
- cxx: g++
- build-type: Release
- configure-options: -DENET_DEBUG=0
- - name: Configure and build debug binary.
- uses: ashutoshvarma/action-cmake-build@master
- with:
- build-dir: ${{ runner.workspace }}/build-debug
- cc: gcc
- cxx: g++
- build-type: Debug
- configure-options: -DENET_DEBUG=1
- - name: Stash compiled libraries
- run: |
- cp ${{ runner.workspace }}/build-release/libenet.so ${{ runner.workspace }}/ReleaseTemp/Release/libenet.so
- cp ${{ runner.workspace }}/build-debug/libenet.so ${{ runner.workspace }}/ReleaseTemp/Debug/libenet.so
- zip -j -9 ${{ runner.workspace }}/ReleaseTemp/Release.zip ${{ runner.workspace }}/ReleaseTemp/Release/libenet.so
- zip -j -9 ${{ runner.workspace }}/ReleaseTemp/Debug.zip ${{ runner.workspace }}/ReleaseTemp/Debug/libenet.so
- - name: Upload release library
- id: upload-release-asset
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ needs.create_release.outputs.create_release_url }}
- asset_path: ${{ runner.workspace }}/ReleaseTemp/Release.zip
- asset_name: libenet-release-linux64.zip
- asset_content_type: application/zip
- - name: Upload debug library
- id: upload-debug-asset
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ needs.create_release.outputs.create_release_url }}
- asset_path: ${{ runner.workspace }}/ReleaseTemp/Debug.zip
- asset_name: libenet-debug-linux64.zip
- asset_content_type: application/zip
- # END LINUX BUILD JOB
- # START APPLE MACOS BUILD JOB
- build_apple_64:
- name: Build for MacOS
- needs: create_release
- runs-on: macos-latest
- steps:
- - name: Setup XCode
- uses: maxim-lobanov/[email protected]
- with:
- xcode-version: 11.6
-
- - name: Grab the latest copy of the repository.
- uses: actions/checkout@v2
- - name: Run automated build script.
- run: |
- cd ${{ runner.workspace }}/ENet-CSharp && bash AutoBuild/githubAutoBuild.command
-
- - name: Upload release library
- id: upload-release-asset
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ needs.create_release.outputs.create_release_url }}
- asset_path: ${{ runner.workspace }}/ENet-CSharp/ReleaseOut/Release.zip
- asset_name: libenet-release-MacOS.zip
- asset_content_type: application/zip
- - name: Upload debug library
- id: upload-debug-asset
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ needs.create_release.outputs.create_release_url }}
- asset_path: ${{ runner.workspace }}/ENet-CSharp/DebugOut/Debug.zip
- asset_name: libenet-debug-MacOS.zip
- asset_content_type: application/zip
- # END APPLE MACOS BUILD JOB
- build_windows_64:
- name: Build for Windows x64
- needs: create_release
- runs-on: windows-latest
- steps:
- - name: Grab the latest copy of the repository.
- uses: actions/checkout@v2
- - name: Run automated build script
- run: |
- cd ${{ runner.workspace }}\ENet-CSharp && &.\Autobuild\githubAutobuild.cmd ${{ runner.workspace }}
- - name: Upload release library
- id: upload-release-asset
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ needs.create_release.outputs.create_release_url }}
- asset_path: ${{ runner.workspace }}\ReleaseOut\Release.zip
- asset_name: libenet-release-win64.zip
- asset_content_type: application/zip
- - name: Upload debug library
- id: upload-debug-asset
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ needs.create_release.outputs.create_release_url }}
- asset_path: ${{ runner.workspace }}/DebugOut/Debug.zip
- asset_name: libenet-debug-win64.zip
- asset_content_type: application/zip
- # START APPLE IOS BUILD JOB
- build_apple_mobile:
- name: Build for Apple iOS
- needs: create_release
- runs-on: macos-latest
- steps:
-
- - name: Setup XCode
- uses: maxim-lobanov/[email protected]
- with:
- xcode-version: 11.6
- - name: Grab the latest copy of the repository.
- uses: actions/checkout@v2
- - name: Create temporary staging directories.
- run: |
- mkdir -p ${{ runner.workspace }}/temp/Release
- mkdir -p ${{ runner.workspace }}/temp/Debug
- - name: Run iOS build script in production mode.
- run: |
- cd $GITHUB_WORKSPACE/Build-iOS ; chmod +x ./Build-iOS.command ; ./Build-iOS.command
- zip -j -9 ${{ runner.workspace }}/temp/Release/libenet.zip $GITHUB_WORKSPACE/Build-iOS/build/Release-iphoneos/libenet.a
- - name: Run iOS build script in Debug mode.
- run: |
- cd $GITHUB_WORKSPACE/Build-iOS; sed -i '' 's/BUILD_TYPE="Release"/BUILD_TYPE="Debug"/g' Build-iOS.command ; chmod +x ./Build-iOS.command ; ./Build-iOS.command
- zip -j -9 ${{ runner.workspace }}/temp/Debug/libenet.zip $GITHUB_WORKSPACE/Build-iOS/build/Debug-iphoneos/libenet.a
- - name: Upload release library
- id: upload-release-asset
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ needs.create_release.outputs.create_release_url }}
- asset_path: ${{ runner.workspace }}/temp/Release/libenet.zip
- asset_name: libenet-release-iOS.zip
- asset_content_type: application/zip
- - name: Upload debug library
- id: upload-debug-asset
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ needs.create_release.outputs.create_release_url }}
- asset_path: ${{ runner.workspace }}/temp/Debug/libenet.zip
- asset_name: libenet-debug-iOS.zip
- asset_content_type: application/zip
- # END APPLE IOS BUILD JOB
- # START ANDROID BUILD JOB
- build_android:
- name: Build for Android
- needs: create_release
- runs-on: ubuntu-latest
- steps:
- - name: Grab the latest copy of the repository.
- uses: actions/checkout@v2
- # Stubbed!
- # END ANDROID BUILD JOB
- # end of build jobs.
|