name: Create release if everything passes on: push: branches: - develop pull_request: schedule: - cron: '0 0 1 * *' jobs: publish-binaries: name: "Publish Binaries" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: 'Wait for status checks' id: waitforstatuschecks uses: "WyriHaximus/github-action-wait-for-status@v1.2" with: ignoreActions: "Publish Binaries" checkInterval: 60 env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - name: Sleep until all binaries get uploaded shell: bash run: | sleep 60 - name: Download Linux artifacts uses: dawidd6/action-download-artifact@v2 if: steps.waitforstatuschecks.outputs.status == 'success' with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: unittests_linux.yml path: artifacts - name: Download Mac OS artifacts uses: dawidd6/action-download-artifact@v2 if: steps.waitforstatuschecks.outputs.status == 'success' with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: unittests_macos.yml path: artifacts - name: Download Windows artifacts uses: dawidd6/action-download-artifact@v2 if: steps.waitforstatuschecks.outputs.status == 'success' with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: unittests_windows.yml path: artifacts # - name: Delete Tag # uses: dev-drprasad/delete-tag-and-release@v0.1.2 # with: # delete_release: true # tag_name: last_all_tests_passing # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create Release id: create_release uses: actions/create-release@v1 if: steps.waitforstatuschecks.outputs.status == 'success' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: all_tests_passed_${{ github.sha }} release_name: All tests passed ${{ github.sha }} body: | ``` ${{ github.event.head_commit.message }} ``` Prebuilt binaries with development headers and documentation for common platforms are in Assets below: draft: false prerelease: true - name: Upload Linux 1 uses: actions/upload-release-asset@v1 if: steps.waitforstatuschecks.outputs.status == 'success' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: artifacts/Linux error_code g++ prebuilt binaries/llfio-v2.0-binaries-linux-x64.tgz asset_name: llfio-v2.0-binaries-ubuntu18.04-x64-error_code.tgz asset_content_type: application/gzip - name: Upload Linux 2 uses: actions/upload-release-asset@v1 if: steps.waitforstatuschecks.outputs.status == 'success' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: artifacts/Linux status_code g++ prebuilt binaries/llfio-v2.0-binaries-linux-x64.tgz asset_name: llfio-v2.0-binaries-ubuntu18.04-x64-status_code.tgz asset_content_type: application/gzip - name: Upload Linux 3 uses: actions/upload-release-asset@v1 if: steps.waitforstatuschecks.outputs.status == 'success' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: artifacts/Linux error_code arm-linux-gnueabihf-g++ prebuilt binaries/llfio-v2.0-binaries-linux-armhf.tgz asset_name: llfio-v2.0-binaries-ubuntu18.04-armhf-error_code.tgz asset_content_type: application/gzip - name: Upload Linux 4 uses: actions/upload-release-asset@v1 if: steps.waitforstatuschecks.outputs.status == 'success' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: artifacts/Linux status_code arm-linux-gnueabihf-g++ prebuilt binaries/llfio-v2.0-binaries-linux-armhf.tgz asset_name: llfio-v2.0-binaries-ubuntu18.04-armhf-status_code.tgz asset_content_type: application/gzip - name: Upload MacOS 1 uses: actions/upload-release-asset@v1 if: steps.waitforstatuschecks.outputs.status == 'success' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: artifacts/Mac OS error_code prebuilt binaries/llfio-v2.0-binaries-darwin-x64.tgz asset_name: llfio-v2.0-binaries-macos-10.15-x64-error_code.tgz asset_content_type: application/gzip - name: Upload MacOS 2 uses: actions/upload-release-asset@v1 if: steps.waitforstatuschecks.outputs.status == 'success' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: artifacts/Mac OS status_code prebuilt binaries/llfio-v2.0-binaries-darwin-x64.tgz asset_name: llfio-v2.0-binaries-macos-10.15-x64-status_code.tgz asset_content_type: application/gzip - name: Upload Windows 1 uses: actions/upload-release-asset@v1 if: steps.waitforstatuschecks.outputs.status == 'success' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: artifacts/Windows VS2017 error_code prebuilt binaries/llfio-v2.0-binaries-win64.zip asset_name: llfio-v2.0-binaries-win64-vs2017-error_code.zip asset_content_type: application/zip - name: Upload Windows 2 uses: actions/upload-release-asset@v1 if: steps.waitforstatuschecks.outputs.status == 'success' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: artifacts/Windows VS2017 status_code prebuilt binaries/llfio-v2.0-binaries-win64.zip asset_name: llfio-v2.0-binaries-win64-vs2017-status_code.zip asset_content_type: application/zip