From d57b486bf41c5fee684c2ba3eebf5dcafb10a87f Mon Sep 17 00:00:00 2001 From: Mark Sinclair Date: Fri, 3 Feb 2023 11:35:03 +0000 Subject: [PATCH] GitHub Actions: add action to build and upload binaries to CI server --- .../build-and-upload-binaries-ci.yml | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 .github/workflows/build-and-upload-binaries-ci.yml diff --git a/.github/workflows/build-and-upload-binaries-ci.yml b/.github/workflows/build-and-upload-binaries-ci.yml new file mode 100644 index 0000000000..102b9106c7 --- /dev/null +++ b/.github/workflows/build-and-upload-binaries-ci.yml @@ -0,0 +1,106 @@ +name: Build and upload binaries to CI + +on: + workflow_dispatch: + push: + paths: + - 'clients/**' + - 'common/**' + - 'contracts/**' + - 'explorer-api/**' + - 'gateway/**' + - 'integrations/**' + - 'mixnode/**' + - 'sdk/rust/nym-sdk/**' + - 'service-providers/**' + - 'nym-api/**' + - 'nym-outfox/**' + - 'tools/nym-cli/**' + - 'tools/ts-rs-cli/**' + pull_request: + paths: + - 'clients/**' + - 'common/**' + - 'contracts/**' + - 'explorer-api/**' + - 'gateway/**' + - 'integrations/**' + - 'mixnode/**' + - 'sdk/rust/nym-sdk/**' + - 'service-providers/**' + - 'nym-api/**' + - 'nym-outfox/**' + - 'tools/nym-cli/**' + - 'tools/ts-rs-cli/**' + +env: + NETWORK: mainnet + +jobs: + publish-nym: + strategy: + fail-fast: false + matrix: + platform: [ubuntu-20.04] + + runs-on: ${{ matrix.platform }} + steps: + - uses: actions/checkout@v3 + + - name: Install Dependencies (Linux) + run: sudo apt-get update && sudo apt-get -y install libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libudev-dev squashfs-tools + continue-on-error: true + + - name: Install Rust stable + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + + - name: Build all binaries + uses: actions-rs/cargo@v1 + with: + command: build + args: --workspace --release + + - name: Install Rust stable + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + target: wasm32-unknown-unknown + override: true + components: rustfmt, clippy + + - name: Build release contracts + run: make wasm + + - name: Prepare build output + steps: + - shell: bash + run: | + rm -rf ci-builds || true + mkdir ci-builds + + cp target/release/nym-client ci-builds + cp target/release/nym-gateway ci-builds + cp target/release/nym-mixnode ci-builds + cp target/release/nym-socks5-client ci-builds + cp target/release/nym-api ci-builds + cp target/release/nym-network-requester ci-builds + cp target/release/nym-network-statistics ci-builds + cp target/release/nym-cli ci-builds + + cp contracts/target/wasm32-unknown-unknown/release/mixnet_contract.wasm ci-builds + cp contracts/target/wasm32-unknown-unknown/release/vesting_contract.wasm ci-builds + + - name: Deploy branch to CI www + continue-on-error: true + uses: easingthemes/ssh-deploy@main + env: + SSH_PRIVATE_KEY: ${{ secrets.CI_WWW_SSH_PRIVATE_KEY }} + ARGS: "-rltgoDzvO --delete" + SOURCE: "ci-builds/" + REMOTE_HOST: ${{ secrets.CI_WWW_REMOTE_HOST }} + REMOTE_USER: ${{ secrets.CI_WWW_REMOTE_USER }} + TARGET: ${{ secrets.CI_WWW_REMOTE_TARGET }}/builds/${{ env.GITHUB_REF_SLUG }} + EXCLUDE: "/dist/, /node_modules/" +