-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
4e3c3b2
commit 95d4560
Showing
6 changed files
with
131 additions
and
7 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
# This action enables building container images for subcoin node. | ||
name: Docker base | ||
|
||
on: | ||
workflow_dispatch: | ||
push: | ||
branches: | ||
- main | ||
- docker-base | ||
- 'release/**' | ||
tags: | ||
- '**' | ||
|
||
jobs: | ||
container-linux: | ||
runs-on: ubuntu-22.04 | ||
permissions: | ||
contents: write | ||
packages: write | ||
strategy: | ||
matrix: | ||
platform: | ||
# - arch: linux/amd64 | ||
# profile: production | ||
# suffix: ubuntu-x86_64-${{ github.ref_name }} | ||
# image-suffix: '' | ||
# dockerfile-suffix: '' | ||
- arch: linux/arm64 | ||
profile: production | ||
suffix: ubuntu-aarch64-${{ github.ref_name }} | ||
image-suffix: '-aarch64.base' | ||
dockerfile-suffix: '.aarch64.base' | ||
|
||
steps: | ||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v3 | ||
|
||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v3 | ||
|
||
- name: Log into registry | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.actor }} | ||
password: ${{ github.token }} | ||
|
||
- name: Extract Docker metadata | ||
id: meta | ||
uses: docker/metadata-action@v3 | ||
with: | ||
images: | | ||
ghcr.io/subcoin-project/subcoin-base | ||
tags: | | ||
type=ref,event=tag | ||
type=ref,event=branch | ||
type=sha | ||
flavor: | | ||
latest=false | ||
suffix=${{ matrix.platform.image-suffix }} | ||
- name: Build and push image | ||
id: build | ||
uses: docker/build-push-action@v6 | ||
with: | ||
file: Dockerfile${{ matrix.platform.dockerfile-suffix }} | ||
platforms: ${{ matrix.platform.arch }} | ||
push: ${{ github.event_name != 'pull_request' }} | ||
tags: ${{ steps.meta.outputs.tags }} | ||
labels: ${{ steps.meta.outputs.labels }} | ||
build-args: | | ||
SUBSTRATE_CLI_GIT_COMMIT_HASH=${{ github.sha }} | ||
PROFILE=${{ matrix.platform.profile }} | ||
- name: Image digest | ||
run: echo ${{ steps.build.outputs.digest }} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# This is a base image to build Subcoin node | ||
FROM ubuntu:22.04 AS builder | ||
|
||
# By default, we use the stable Rust. However, we encountered some network issues | ||
# during the docker build processing in CI. Now we compile the binary using nightly | ||
# so that the network issue in CI can be mitigated via the unstable flag `-Zgitoxide -Zgit`. | ||
ARG RUSTC_VERSION=nightly-2024-06-29 | ||
|
||
ARG PROFILE=production | ||
ARG SUBSTRATE_CLI_GIT_COMMIT_HASH | ||
ARG TARGET=aarch64-unknown-linux-gnu | ||
|
||
# Incremental compilation here isn't helpful | ||
ENV CARGO_INCREMENTAL=0 | ||
|
||
ENV RUSTFLAGS="-C linker=aarch64-linux-gnu-gcc" | ||
ENV PKG_CONFIG_ALLOW_CROSS=true | ||
|
||
WORKDIR /src | ||
|
||
RUN apt-get update && \ | ||
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ | ||
ca-certificates \ | ||
clang \ | ||
cmake \ | ||
curl \ | ||
git \ | ||
llvm \ | ||
protobuf-compiler \ | ||
make && \ | ||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain $RUSTC_VERSION | ||
|
||
# Dependencies necessary for cross-compilation. | ||
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ | ||
g++-aarch64-linux-gnu \ | ||
gcc-aarch64-linux-gnu \ | ||
libc6-dev-arm64-cross && \ | ||
/root/.cargo/bin/rustup target add $TARGET && \ | ||
/root/.cargo/bin/rustup target add wasm32-unknown-unknown --toolchain $RUSTC_VERSION-$TARGET | ||
|
||
COPY . . | ||
|
||
# Create a dummy main.rs to trick Cargo into downloading the dependencies | ||
RUN /root/.cargo/bin/cargo +$RUSTC_VERSION build --bin dummy --locked --profile=production --target aarch64-unknown-linux-gnu |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
fn main() {} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
fn main() -> sc_cli::Result<()> { | ||
subcoin_node::cli::run()?; | ||
Ok(()) | ||
} |
7 changes: 1 addition & 6 deletions
7
crates/subcoin-node/src/main.rs → crates/subcoin-node/src/lib.rs
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