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..c8e5bc924e --- /dev/null +++ b/.github/workflows/build-and-upload-binaries-ci.yml @@ -0,0 +1,113 @@ +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: Prepare build output directory + shell: bash + env: + OUTPUT_DIR: ci-builds/${{ github.ref_name }} + run: | + rm -rf ci-builds || true + mkdir -p $OUTPUT_DIR + echo $OUTPUT_DIR + + - 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 + shell: bash + env: + OUTPUT_DIR: ci-builds/${{ github.ref_name }} + run: | + cp target/release/nym-client $OUTPUT_DIR + cp target/release/nym-gateway $OUTPUT_DIR + cp target/release/nym-mixnode $OUTPUT_DIR + cp target/release/nym-socks5-client $OUTPUT_DIR + cp target/release/nym-api $OUTPUT_DIR + cp target/release/nym-network-requester $OUTPUT_DIR + cp target/release/nym-network-statistics $OUTPUT_DIR + cp target/release/nym-cli $OUTPUT_DIR + + cp contracts/target/wasm32-unknown-unknown/release/mixnet_contract.wasm $OUTPUT_DIR + cp contracts/target/wasm32-unknown-unknown/release/vesting_contract.wasm $OUTPUT_DIR + + - 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: "-avzr" + SOURCE: "ci-builds/" + REMOTE_HOST: ${{ secrets.CI_WWW_REMOTE_HOST }} + REMOTE_USER: ${{ secrets.CI_WWW_REMOTE_USER }} + TARGET: ${{ secrets.CI_WWW_REMOTE_TARGET }}/builds/ + EXCLUDE: "/dist/, /node_modules/" +