Staging #151
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: [main] | |
workflow_dispatch: | |
env: | |
CACHE_VERSION: 0 | |
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse | |
CARGO_TERM_COLOR: always | |
DOCKER_REGISTRY: ghcr.io | |
RUST_BACKTRACE: full | |
jobs: | |
build-package: | |
name: Build package [linux] | |
runs-on: ubuntu-latest | |
container: | |
image: ubuntu:20.04 | |
steps: | |
- name: Free disk space | |
uses: jlumbroso/free-disk-space@main | |
with: | |
tool-cache: true | |
android: true | |
dotnet: true | |
haskell: true | |
large-packages: false | |
docker-images: true | |
swap-storage: false | |
- name: Set swap space | |
uses: pierotofy/set-swap-space@master | |
with: | |
swap-size-gb: 8 | |
- name: Fetch latest code | |
uses: actions/checkout@v3 | |
- name: Setup build environment | |
run: | | |
apt update -y | |
apt install --no-install-recommends -y \ | |
ca-certificates curl git python3-pip zstd \ | |
clang make gcc g++ libssl-dev pkg-config protobuf-compiler | |
pip3 install --upgrade pip | |
pip3 install cmake --upgrade | |
rustup show | |
- name: Cache cargo | |
uses: actions/cache@v3 | |
with: | |
path: | | |
./target | |
~/.cargo | |
key: ${{ matrix.action }}-${{ env.CACHE_VERSION }}-${{ runner.os }}-${{ hashFiles('rust-toolchain.toml') }}-${{ hashFiles('Cargo.lock') }} | |
restore-keys: | | |
${{ matrix.action }}-${{ env.CACHE_VERSION }}-${{ runner.os }}-${{ hashFiles('rust-toolchain.toml') }}- | |
${{ matrix.action }}-${{ env.CACHE_VERSION }}-${{ runner.os }}- | |
- name: Build | |
run: cargo build --release --locked -p darwinia --features all-natives | |
- name: Configure artifacts | |
run: | | |
mkdir -p shared | |
tar cjSf \ | |
shared/darwinia2-x86_64-linux-gnu.tar.bz2 \ | |
-C \ | |
target/release \ | |
darwinia | |
.github/shrink-cache.sh | |
- name: Upload | |
uses: actions/upload-artifact@v2 | |
with: | |
name: darwinia-artifact | |
path: shared | |
build-docker-image: | |
name: Build image | |
runs-on: ubuntu-latest | |
needs: [build-package] | |
steps: | |
- name: Fetch latest code | |
uses: actions/checkout@v3 | |
- name: Sha | |
uses: benjlevesque/[email protected] | |
- name: Docker login | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
registry: ${{ env.DOCKER_REGISTRY }} | |
- name: Download shared | |
uses: actions/download-artifact@v2 | |
with: | |
name: darwinia-artifact | |
path: shared | |
- name: Extract shared | |
run: | | |
mkdir -p dist | |
tar -xvf shared/darwinia2-x86_64-linux-gnu.tar.bz2 -C dist/ | |
- name: Publish docker image | |
uses: docker/build-push-action@v3 | |
with: | |
push: true | |
context: . | |
file: .maintain/docker/Dockerfile | |
tags: ${{ env.DOCKER_REGISTRY }}/${{ github.repository }}:sha-${{ env.SHA }} |