| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- name: Master Build
- on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ master ]
- jobs:
- # START LINUX BUILD JOB
- build_linux64:
- name: Build for Linux 64bit (Ubuntu)
- runs-on: ubuntu-latest
- outputs:
- build_number: ${{ steps.buildnumber.outputs.build_number }}
- create_release_url: ${{ steps.create_release.outputs.upload_url }}
- steps:
-
- - name: Generate build number
- id: buildnumber
- uses: einaregilsson/build-number@v2
- with:
- token: ${{secrets.github_token}}
- - name: Checkout code
- uses: actions/checkout@v2
- - name: Create temporary directories.
- run: |
- mkdir -p ${{ runner.workspace }}/ReleaseTemp/Release
- mkdir -p ${{ runner.workspace }}/ReleaseTemp/Debug
- - name: Run CMake to configure and create a Release build
- 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: Stash compiled library
- run: |
- cp ${{ runner.workspace }}/build-release/libenet.so ${{ runner.workspace }}/ReleaseTemp/Release/libenet.so
- zip -j -9 ${{ runner.workspace }}/ReleaseTemp/Release.zip ${{ runner.workspace }}/ReleaseTemp/Release/libenet.so
- - name: Upload release build artifact
- uses: actions/upload-artifact@v2
- with:
- name: Linux64-Release-Binary
- path: ${{ runner.workspace }}/build-release/libenet.so
- - name: Run CMake to configure and create a Debug build.
- 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 library
- run: |
- cp ${{ runner.workspace }}/build-debug/libenet.so ${{ runner.workspace }}/ReleaseTemp/Debug/libenet.so
- zip -j -9 ${{ runner.workspace }}/ReleaseTemp/Debug.zip ${{ runner.workspace }}/ReleaseTemp/Debug/libenet.so
- - name: Upload debug build artifact
- uses: actions/upload-artifact@v2
- with:
- name: Linux64-Debug-Binary
- path: ${{ runner.workspace }}/build-debug/libenet.so
- - name: Create a release
- id: create_release
- uses: actions/create-release@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- tag_name: autobuild-${{ steps.buildnumber.outputs.build_number }}
- release_name: ENET Native Libraries (Autobuild ${{ steps.buildnumber.outputs.build_number }})
- body: This is an automatic build of ENET for various operating systems. Please do not mix and match ENET native binaries as code differences between forks may cause crashes. The release archive contains one for use in shipping, while the debug archive has logging facilities.
- draft: false
- prerelease: false
- - name: Upload Release Asset
- id: upload-release-asset
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ${{ runner.workspace }}/ReleaseTemp/Release.zip
- asset_name: libenet-release-linux64.zip
- asset_content_type: application/zip
- - name: Upload Debug Asset
- id: upload-debug-asset
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_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 IOS BUILD JOB
- build_apple_mobile:
- name: Build for Apple iOS
- needs: build_linux64
- runs-on: macos-latest
- steps:
-
- - name: Setup XCode (with latest Apple SDK)
- uses: maxim-lobanov/[email protected]
- with:
- xcode-version: latest
- - name: Checkout Code
- uses: actions/checkout@v2
- - name: Make temp directories.
- run: |
- mkdir -p ${{ runner.workspace }}/temp/Release
- mkdir -p ${{ runner.workspace }}/temp/Debug
- - name: Run repository build script in Release 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 repository 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: Stash release build artifact
- uses: actions/upload-artifact@v2
- with:
- name: iOS-enet-Release
- path: ${{ runner.workspace }}/temp/Release/libenet.zip
- - name: Stash debug build artifact
- uses: actions/upload-artifact@v2
- with:
- name: iOS-enet-Debug
- path: ${{ runner.workspace }}/temp/Debug/libenet.zip
- - name: Upload Release Asset
- id: upload-release-asset
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ needs.build_linux64.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 Asset
- id: upload-debug-asset
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ needs.build_linux64.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
|