This repository has been archived by the owner on Mar 20, 2024. It is now read-only.
Staging #232
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Staging | |
on: | |
push: | |
branches: [ master ] | |
workflow_dispatch: | |
env: | |
OPENSSL_DIR: /home/runner/openssl | |
OPENSSL_STATIC: 1 | |
RUST_TOOLCHAIN: nightly | |
jobs: | |
build-linux: | |
name: Build package [linux] | |
runs-on: ubuntu-latest | |
container: | |
image: ubuntu:16.04 | |
strategy: | |
matrix: | |
package: | |
- bridger | |
# - darwinia-ethereum | |
# - pangolin-goerli | |
# - darwinia-crab | |
# - pangolin-pangoro | |
- pangoro-goerli | |
# - pangoro-chapel | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install dependencies | |
run: | | |
apt update -y | |
apt install --no-install-recommends -y \ | |
git curl ca-certificates \ | |
make gcc g++ clang-4.0 \ | |
libssl-dev pkg-config zip | |
- name: Build openssl | |
run: | | |
curl https://www.openssl.org/source/openssl-1.1.1l.tar.gz | tar xz | |
cd openssl-1.1.1l | |
./config --prefix=${{ env.OPENSSL_DIR }} -static -fPIC | |
make -j4 | |
make install | |
- name: Install rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN }} | |
- name: Build bridger | |
if: matrix.package == 'bridger' | |
run: | | |
cd frame | |
cargo build --release --target x86_64-unknown-linux-gnu | |
- name: Collect shared for bridger | |
if: matrix.package == 'bridger' | |
run: | | |
mkdir -p shared | |
zip -jr \ | |
shared/bridger-linux-x86_64.zip \ | |
frame/target/x86_64-unknown-linux-gnu/release/bridger | |
- name: Build bridge-${{ matrix.package }} | |
if: matrix.package != 'bridger' | |
run: | | |
cd bridges/${{ matrix.package }} | |
cargo build --release --target x86_64-unknown-linux-gnu | |
- name: Collect shared for bridge-${{ matrix.package }} | |
if: matrix.package != 'bridger' | |
run: | | |
mkdir -p shared | |
zip -jr \ | |
shared/bridge-${{ matrix.package }}-linux-x86_64.zip \ | |
bridges/${{ matrix.package }}/target/x86_64-unknown-linux-gnu/release/bridge-${{ matrix.package }} | |
- name: Upload shared | |
uses: actions/upload-artifact@v2 | |
with: | |
name: bridger-artifact | |
path: shared | |
build-docker-image: | |
name: Build image | |
runs-on: ubuntu-latest | |
needs: [ build-linux ] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/download-artifact@v2 | |
with: | |
name: bridger-artifact | |
path: shared | |
- name: Docker login | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.QUAY_IO_BOT_USERNAME }} | |
password: ${{ secrets.QUAY_IO_BOT_PASSWORD }} | |
registry: quay.io | |
- uses: benjlevesque/[email protected] | |
- name: Extract linux package | |
run: | | |
mkdir -p dist | |
for z in shared/*-linux-x86_64.zip; do unzip $z -d dist/; done | |
- name: Build and publish docker image | |
run: | | |
IMAGE_NAME=bridger | |
IMAGE_PREFIX=quay.io/darwinia-network | |
IMAGE_PUSH_NAME_SHA=${IMAGE_PREFIX}/${IMAGE_NAME}:sha-${SHA} | |
docker build \ | |
-t ${IMAGE_PUSH_NAME_SHA} \ | |
-f .maintain/docker/Dockerfile \ | |
. | |
docker push ${IMAGE_PUSH_NAME_SHA} | |
clean-artifacts: | |
name: Clean artifacts | |
runs-on: ubuntu-latest | |
needs: [ build-docker-image ] | |
if: always() | |
steps: | |
- uses: geekyeggo/delete-artifact@v1 | |
with: | |
name: bridger-artifact |