diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 9942069dd..000000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,285 +0,0 @@ -name: Build Release Suite - -on: - push: - tags: - - v* - -# Global vars -env: - AWS_REGION: "us-east-1" - AWS_S3_ARTIFACTS_BUCKET: "openethereum-releases" - ACTIONS_ALLOW_UNSECURE_COMMANDS: true - -jobs: - build: - name: Build Release - strategy: - matrix: - platform: - - ubuntu-20.04 - # - macos-latest - toolchain: - - 1.72 - runs-on: ${{ matrix.platform }} - steps: - - name: Checkout sources - uses: actions/checkout@main - - name: Install toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: ${{ matrix.toolchain }} - profile: minimal - override: true - - # ============================== - # Windows Build - # ============================== - - # - name: Install LLVM for Windows - # if: matrix.platform == 'windows2019' - # run: choco install llvm - - # - name: Build OpenEthereum for Windows - # if: matrix.platform == 'windows2019' - # run: sh scripts/actions/build-windows.sh ${{matrix.platform}} - - # - name: Upload Windows build - # uses: actions/upload-artifact@v2 - # if: matrix.platform == 'windows2019' - # with: - # name: windows-artifacts - # path: artifacts - - # ============================== - # Linux/Macos Build - # ============================== - - - name: Build OpenEthereum for ${{matrix.platform}} - if: matrix.platform != 'windows2019' - run: sh scripts/actions/build-linux.sh ${{matrix.platform}} - - - name: Upload Linux build - uses: actions/upload-artifact@v2 - if: matrix.platform == 'ubuntu-20.04' - with: - name: linux-artifacts - path: artifacts - - - name: Upload MacOS build - uses: actions/upload-artifact@v2 - if: matrix.platform == 'macos-latest' - with: - name: macos-artifacts - path: artifacts - - zip-artifacts-creator: - name: Create zip artifacts - needs: build - runs-on: ubuntu-20.04 - steps: - - name: Set env - run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - - # ============================== - # Create ZIP files - # ============================== - - # - name: Download Windows artifacts - # uses: actions/download-artifact@v2 - # with: - # name: windows-artifacts - # path: windows-artifacts - - - name: Download Linux artifacts - uses: actions/download-artifact@v2 - with: - name: linux-artifacts - path: linux-artifacts - - - name: Download MacOS artifacts - uses: actions/download-artifact@v2 - with: - name: macos-artifacts - path: macos-artifacts - - - name: Display structure of downloaded files - run: ls - - - name: Create zip Linux - id: create_zip_linux - run: | - cd linux-artifacts/ - zip -rT openethereum-linux-${{ env.RELEASE_VERSION }}.zip * - ls openethereum-linux-${{ env.RELEASE_VERSION }}.zip - cd .. - mv linux-artifacts/openethereum-linux-${{ env.RELEASE_VERSION }}.zip . - - echo "Setting outputs..." - echo ::set-output name=LINUX_ARTIFACT::openethereum-linux-${{ env.RELEASE_VERSION }}.zip - echo ::set-output name=LINUX_SHASUM::$(shasum -a 256 openethereum-linux-${{ env.RELEASE_VERSION }}.zip | awk '{print $1}') - - - name: Create zip MacOS - id: create_zip_macos - run: | - cd macos-artifacts/ - zip -rT openethereum-macos-${{ env.RELEASE_VERSION }}.zip * - ls openethereum-macos-${{ env.RELEASE_VERSION }}.zip - cd .. - mv macos-artifacts/openethereum-macos-${{ env.RELEASE_VERSION }}.zip . - - echo "Setting outputs..." - echo ::set-output name=MACOS_ARTIFACT::openethereum-macos-${{ env.RELEASE_VERSION }}.zip - echo ::set-output name=MACOS_SHASUM::$(shasum -a 256 openethereum-macos-${{ env.RELEASE_VERSION }}.zip | awk '{print $1}') - - # - name: Create zip Windows - # id: create_zip_windows - # run: | - # cd windows-artifacts/ - # zip -rT openethereum-windows-${{ env.RELEASE_VERSION }}.zip * - # ls openethereum-windows-${{ env.RELEASE_VERSION }}.zip - # cd .. - # mv windows-artifacts/openethereum-windows-${{ env.RELEASE_VERSION }}.zip . - - # echo "Setting outputs..." - # echo ::set-output name=WINDOWS_ARTIFACT::openethereum-windows-${{ env.RELEASE_VERSION }}.zip - # echo ::set-output name=WINDOWS_SHASUM::$(shasum -a 256 openethereum-windows-${{ env.RELEASE_VERSION }}.zip | awk '{print $1}') - - # ======================================================================= - # Upload artifacts - # This is required to share artifacts between different jobs - # ======================================================================= - - - name: Upload artifacts - uses: actions/upload-artifact@v2 - with: - name: openethereum-linux-${{ env.RELEASE_VERSION }}.zip - path: openethereum-linux-${{ env.RELEASE_VERSION }}.zip - - - name: Upload artifacts - uses: actions/upload-artifact@v2 - with: - name: openethereum-macos-${{ env.RELEASE_VERSION }}.zip - path: openethereum-macos-${{ env.RELEASE_VERSION }}.zip - - # - name: Upload artifacts - # uses: actions/upload-artifact@v2 - # with: - # name: openethereum-windows-${{ env.RELEASE_VERSION }}.zip - # path: openethereum-windows-${{ env.RELEASE_VERSION }}.zip - - # ======================================================================= - # Upload artifacts to S3 - # This is required by some software distribution systems which require - # artifacts to be downloadable, like Brew on MacOS. - # ======================================================================= - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ env.AWS_REGION }} - - - name: Copy files to S3 with the AWS CLI - run: | - # Deploy zip artifacts to S3 bucket to a directory whose name is the tagged release version. - # Deploy macos binary artifact (if required, add more `aws s3 cp` commands to deploy specific OS versions) - aws s3 cp macos-artifacts/openethereum s3://${{ env.AWS_S3_ARTIFACTS_BUCKET }}/${{ env.RELEASE_VERSION }}/macos/ --region ${{ env.AWS_REGION }} - - outputs: - linux-artifact: ${{ steps.create_zip_linux.outputs.LINUX_ARTIFACT }} - linux-shasum: ${{ steps.create_zip_linux.outputs.LINUX_SHASUM }} - macos-artifact: ${{ steps.create_zip_macos.outputs.MACOS_ARTIFACT }} - macos-shasum: ${{ steps.create_zip_macos.outputs.MACOS_SHASUM }} - # windows-artifact: ${{ steps.create_zip_windows.outputs.WINDOWS_ARTIFACT }} - # windows-shasum: ${{ steps.create_zip_windows.outputs.WINDOWS_SHASUM }} - - draft-release: - name: Draft Release - needs: zip-artifacts-creator - runs-on: ubuntu-20.04 - steps: - - name: Set env - run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - - # ============================== - # Download artifacts - # ============================== - - - name: Download artifacts - uses: actions/download-artifact@v2 - with: - name: openethereum-linux-${{ env.RELEASE_VERSION }}.zip - - - name: Download artifacts - uses: actions/download-artifact@v2 - with: - name: openethereum-macos-${{ env.RELEASE_VERSION }}.zip - - # - name: Download artifacts - # uses: actions/download-artifact@v2 - # with: - # name: openethereum-windows-${{ env.RELEASE_VERSION }}.zip - - - name: Display structure of downloaded files - run: ls - - # ============================== - # Create release draft - # ============================== - - - name: Create Release Draft - id: create_release_draft - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token - with: - tag_name: ${{ github.ref }} - release_name: OpenEthereum ${{ github.ref }} - body: | - This release contains - - | System | Architecture | Binary | Sha256 Checksum | - |:---:|:---:|:---:|:---| - | Apple Icon by Pixel Perfect from https://www.flaticon.com/authors/pixel-perfect | x64 | [${{ needs.zip-artifacts-creator.outputs.macos-artifact }}](https://github.com/openethereum/openethereum/releases/download/${{ env.RELEASE_VERSION }}/${{ needs.zip-artifacts-creator.outputs.macos-artifact }}) | `${{ needs.zip-artifacts-creator.outputs.macos-shasum }}` | - | Linux Icon by Pixel Perfect from https://www.flaticon.com/authors/pixel-perfect | x64 | [${{ needs.zip-artifacts-creator.outputs.linux-artifact }}](https://github.com/openethereum/openethereum/releases/download/${{ env.RELEASE_VERSION }}/${{ needs.zip-artifacts-creator.outputs.linux-artifact }}) | `${{ needs.zip-artifacts-creator.outputs.linux-shasum }}` | - | Windows Icon by Pixel Perfect from https://www.flaticon.com/authors/pixel-perfect | x64 | [${{ needs.zip-artifacts-creator.outputs.windows-artifact }}](https://github.com/openethereum/openethereum/releases/download/${{ env.RELEASE_VERSION }}/${{ needs.zip-artifacts-creator.outputs.windows-artifact }}) | `${{ needs.zip-artifacts-creator.outputs.windows-shasum }}` | - | | | | | - | **System** | **Option** | - | **Resource** | - | Settings Icon by Pixel Perfect from https://www.flaticon.com/authors/pixel-perfect | Docker | - | [hub.docker.com/r/openethereum/openethereum](https://hub.docker.com/r/openethereum/openethereum) | - - draft: true - prerelease: true - - - name: Upload Release Asset - Linux - id: upload_release_asset_linux - uses: actions/upload-release-asset@v1.0.1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release_draft.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: ./openethereum-linux-${{ env.RELEASE_VERSION }}.zip - asset_name: openethereum-linux-${{ env.RELEASE_VERSION }}.zip - asset_content_type: application/zip - - - name: Upload Release Asset - MacOS - id: upload_release_asset_macos - uses: actions/upload-release-asset@v1.0.1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release_draft.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: ./openethereum-macos-${{ env.RELEASE_VERSION }}.zip - asset_name: openethereum-macos-${{ env.RELEASE_VERSION }}.zip - asset_content_type: application/zip - - # - name: Upload Release Asset - Windows - # id: upload_release_asset_windows - # uses: actions/upload-release-asset@v1 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # upload_url: ${{ steps.create_release_draft.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: ./openethereum-windows-${{ env.RELEASE_VERSION }}.zip - # asset_name: openethereum-windows-${{ env.RELEASE_VERSION }}.zip - # asset_content_type: application/zip