diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 469b887bbe0df..9edba08ec8902 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -34,13 +34,105 @@ env: RUST_BACKTRACE: short jobs: - release-build: + # release-build: + # timeout-minutes: 45 + # strategy: + # matrix: + # os: [windows-ghcloud, ubuntu-ghcloud] + # fail-fast: false + # runs-on: ${{ matrix.os }} + # steps: + # - name: Clean up tag name ${{ env.TAG_NAME }} + # shell: bash + # run: | + # echo "sui_tag=$(echo ${{ env.TAG_NAME }} | sed s/'refs\/tags\/'//)" >> $GITHUB_ENV + + # - name: Checking out ${{ env.sui_tag }} + # if: ${{ env.sui_tag != 'main' }} + # uses: actions/checkout@v3 + # with: + # ref: ${{ env.sui_tag }} + + # - name: Install nexttest (Windows) + # if: ${{ matrix.os == 'windows-ghcloud' && env.sui_tag != 'main' }} + # uses: taiki-e/install-action@nextest + + # - name: Setup protoc (Windows) + # if: ${{ matrix.os == 'windows-ghcloud' && env.sui_tag != 'main' }} + # uses: arduino/setup-protoc@v1 + # # this avoids rate-limiting + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + + # - name: Install postgres (Windows) + # if: ${{ matrix.os == 'windows-ghcloud' && env.sui_tag != 'main' }} + # shell: bash + # run: | + # choco install postgresql12 --force --params '/Password:root' + # echo "C:\Program Files\PostgreSQL\12\bin" >> $GITHUB_PATH + # echo "C:\Program Files\PostgreSQL\12\lib" >> $GITHUB_PATH + # echo "PQ_LIB_DIR=C:\Program Files\PostgreSQL\12\lib" >> $GITHUB_ENV + # echo "PG_DATABASE_URL=postgres://postgres:root@localhost/" >> $GITHUB_ENV + # echo "PG_EXAMPLE_DATABASE_URL=postgres://postgres:root@localhost/diesel_example" >> $GITHUB_ENV + + # - name: cargo build (release) for ${{ matrix.os }} platform + # if: ${{ env.sui_tag != 'main' }} + # shell: bash + # run: | + # cargo build --release + + # - name: Rename binaries for Ubuntu + # if: ${{ env.sui_tag != 'main' && matrix.os == 'ubuntu-ghcloud' }} + # shell: bash + # run: | + # export arch=$(uname -m) + # export os_type="ubuntu-${arch}" + # echo "os_type=${os_type}" >> $GITHUB_ENV + # mv ./target/release/sui ./target/release/sui-${os_type} + # mv ./target/release/sui-node ./target/release/sui-node-${os_type} + # mv ./target/release/sui-tool ./target/release/sui-tool-${os_type} + # mv ./target/release/sui-faucet ./target/release/sui-faucet-${os_type} + # mv ./target/release/sui-test-validator ./target/release/sui-test-validator-${os_type} + # mv ./target/release/sui-indexer ./target/release/sui-indexer-${os_type} + # tar -cvzf ./target/release/sui-${{ env.sui_tag }}-${os_type}.tgz ./target/release/sui*-${os_type}* + + # - name: Rename binaries for Windows + # if: ${{ env.sui_tag != 'main' && matrix.os == 'windows-ghcloud' }} + # shell: bash + # run: | + # export arch=$(uname -m) + # export os_type="windows-${arch}" + # echo "os_type=${os_type}" >> $GITHUB_ENV + # mv ./target/release/sui.exe ./target/release/sui-${os_type}.exe + # mv ./target/release/sui-node.exe ./target/release/sui-node-${os_type}.exe + # mv ./target/release/sui-tool.exe ./target/release/sui-tool-${os_type}.exe + # mv ./target/release/sui-faucet.exe ./target/release/sui-faucet-${os_type}.exe + # mv ./target/release/sui-test-validator.exe ./target/release/sui-test-validator-${os_type}.exe + # mv ./target/release/sui-indexer.exe ./target/release/sui-indexer-${os_type}.exe + # tar -cvzf ./target/release/sui-${{ env.sui_tag }}-${os_type}.tgz ./target/release/sui*-${os_type}* + + # - name: Upload release artifacts for ${{ matrix.os }} platform + # if: ${{ env.sui_tag != 'main' }} + # uses: actions/upload-artifact@v3 + # with: + # name: sui-binaries-${{ matrix.os }} + # path: | + # ./target/release/sui-${{ env.sui_tag }}-${{ env.os_type }}.tgz + + # - name: Publish binaries for ${{ env.sui_tag }} release + # if: ${{ env.sui_tag != 'main' }} + # uses: softprops/action-gh-release@v1 + # with: + # tag_name: ${{ env.sui_tag }} + # files: | + # ./target/release/sui-${{ env.sui_tag }}-${{ env.os_type }}.tgz + # env: + # # Have to use a Personal Access Token (PAT), based on https://tinyurl.com/2by2ntdr + # GITHUB_TOKEN: ${{ secrets.GH_RELEASE_BUILDS_TOKEN }} + + macos-release-build: timeout-minutes: 45 - strategy: - matrix: - os: [macos-latest] - fail-fast: false - runs-on: ${{ matrix.os }} + runs-on: [ ubuntu-ghcloud ] steps: - name: Clean up tag name ${{ env.TAG_NAME }} shell: bash @@ -52,80 +144,35 @@ jobs: uses: actions/checkout@v3 with: ref: ${{ env.sui_tag }} - - - name: Install nexttest (Windows) - if: ${{ matrix.os == 'windows-ghcloud' && env.sui_tag != 'main' }} - uses: taiki-e/install-action@nextest - - - name: Setup protoc (Windows) - if: ${{ matrix.os == 'windows-ghcloud' && env.sui_tag != 'main' }} - uses: arduino/setup-protoc@v1 - # this avoids rate-limiting - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Install postgres (Windows) - if: ${{ matrix.os == 'windows-ghcloud' && env.sui_tag != 'main' }} - shell: bash - run: | - choco install postgresql12 --force --params '/Password:root' - echo "C:\Program Files\PostgreSQL\12\bin" >> $GITHUB_PATH - echo "C:\Program Files\PostgreSQL\12\lib" >> $GITHUB_PATH - echo "PQ_LIB_DIR=C:\Program Files\PostgreSQL\12\lib" >> $GITHUB_ENV - echo "PG_DATABASE_URL=postgres://postgres:root@localhost/" >> $GITHUB_ENV - echo "PG_EXAMPLE_DATABASE_URL=postgres://postgres:root@localhost/diesel_example" >> $GITHUB_ENV - - - name: cargo build (release) for ${{ matrix.os }} platform - if: ${{ env.sui_tag != 'main' }} - shell: bash - run: | - cargo build --release - name: cargo build (release) for aarch64-apple-darwin platform - if: ${{ env.sui_tag != 'main' }} + if: ${{ env.sui_tag != 'main' }} shell: bash run: | rustup target add aarch64-apple-darwin - cargo build --target aarch64-apple-darwin --release + cargo build --target aarch64-apple-darwin --release - - name: Rename binaries for Ubuntu - if: ${{ env.sui_tag != 'main' && matrix.os == 'macos-latest' }} + - name: Rename binaries for MacOS + if: ${{ env.sui_tag != 'main' }} shell: bash run: | - export arch=$(uname -m) - export os_type="ubuntu-${arch}" - echo "os_type=${os_type}" >> $GITHUB_ENV + echo "os_type=aarch64-apple-darwin" >> $GITHUB_ENV mv ./target/release/sui ./target/release/sui-${os_type} mv ./target/release/sui-node ./target/release/sui-node-${os_type} mv ./target/release/sui-tool ./target/release/sui-tool-${os_type} mv ./target/release/sui-faucet ./target/release/sui-faucet-${os_type} mv ./target/release/sui-test-validator ./target/release/sui-test-validator-${os_type} mv ./target/release/sui-indexer ./target/release/sui-indexer-${os_type} - tar -cvzf ./target/release/sui-${{ env.sui_tag }}-${os_type}.tgz ./target/release/sui*-${os_type}* - - - name: Rename binaries for Windows - if: ${{ env.sui_tag != 'main' && matrix.os == 'windows-ghcloud' }} - shell: bash - run: | - export arch=$(uname -m) - export os_type="windows-${arch}" - echo "os_type=${os_type}" >> $GITHUB_ENV - mv ./target/release/sui.exe ./target/release/sui-${os_type}.exe - mv ./target/release/sui-node.exe ./target/release/sui-node-${os_type}.exe - mv ./target/release/sui-tool.exe ./target/release/sui-tool-${os_type}.exe - mv ./target/release/sui-faucet.exe ./target/release/sui-faucet-${os_type}.exe - mv ./target/release/sui-test-validator.exe ./target/release/sui-test-validator-${os_type}.exe - mv ./target/release/sui-indexer.exe ./target/release/sui-indexer-${os_type}.exe - tar -cvzf ./target/release/sui-${{ env.sui_tag }}-${os_type}.tgz ./target/release/sui*-${os_type}* - - - name: Upload release artifacts for ${{ matrix.os }} platform + tar -cvzf ./target/release/sui-${{ env.sui_tag }}-${os_type}.tgz ./target/release/sui*-${os_type}* + + - name: Upload release artifacts for aarch64-apple-darwin platform if: ${{ env.sui_tag != 'main' }} uses: actions/upload-artifact@v3 with: - name: sui-binaries-${{ matrix.os }} + name: sui-binaries-macos path: | ./target/release/sui-${{ env.sui_tag }}-${{ env.os_type }}.tgz - + - name: Publish binaries for ${{ env.sui_tag }} release if: ${{ env.sui_tag != 'main' }} uses: softprops/action-gh-release@v1