Skip to content

Commit

Permalink
ci: add debian aarch64 image
Browse files Browse the repository at this point in the history
  • Loading branch information
greenhat616 committed Sep 11, 2024
1 parent ebbdda7 commit 68f55b9
Show file tree
Hide file tree
Showing 6 changed files with 122 additions and 0 deletions.
49 changes: 49 additions & 0 deletions .github/workflows/build-docker-debain-trixie-aarch64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Build and Push Docker Image

on:
push:
branches:
- main # 在主分支推送时触发
paths:
- docker/debian-trixie/aarch64/** # 指定路径
workflow_dispatch:
jobs:
build:
name: Build and Push debian-trixie-aarch64 Docker Image
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Build and Push Docker image
uses: docker/build-push-action@v5
with:
context: ./docker/debian-trixie/aarch64
file: ./docker/debian-trixie/aarch64/Dockerfile
tags: |
ghcr.io/${{ github.repository_owner }}/builder-debian-trixie-aarch64:${{ github.sha }}
ghcr.io/${{ github.repository_owner }}/builder-debian-trixie-aarch64:latest
push: true

- name: Remove cache after build
run: |
rm -rf /tmp/.buildx-cache
1 change: 1 addition & 0 deletions .github/workflows/build-docker-debain-trixie-armel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
workflow_dispatch:
jobs:
build:
name: Build and Push debian-trixie-armel Docker Image
runs-on: ubuntu-latest

steps:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/build-docker-debain-trixie-i686.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
workflow_dispatch:
jobs:
build:
name: Build and Push debian-trixie-i686 Docker Image
runs-on: ubuntu-latest

steps:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/build-docker-ubuntu-jammy-aarch64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
workflow_dispatch:
jobs:
build:
name: Build and Push ubuntu-22.04-aarch64 Docker Image
runs-on: ubuntu-latest

steps:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/build-docker-ubuntu-jammy-armhf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
workflow_dispatch:
jobs:
build:
name: Build and Push ubuntu-22.04-armhf Docker Image
runs-on: ubuntu-latest

steps:
Expand Down
69 changes: 69 additions & 0 deletions docker/debian-trixie/aarch64/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
FROM debian:trixie
ENV DEBIAN_FRONTEND=noninteractive

# RUN rm -f /etc/apt/sources.list.d/debian.sources && \
# rm -f /etc/apt/sources.list && \
# echo "deb http://mirrors.nju.edu.cn/debian/ trixie main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list && \
# echo "deb http://mirrors.nju.edu.cn/debian/ trixie-updates main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list && \
# echo "deb http://mirrors.nju.edu.cn/debian/ trixie-backports main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list && \
# echo "deb http://mirrors.nju.edu.cn/debian-security/ trixie-security main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list

RUN rm -f /etc/apt/sources.list.d/debian.sources && \
rm -f /etc/apt/sources.list && \
echo "deb http://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list && \
echo "deb http://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list && \
echo "deb http://deb.debian.org/debian/ trixie-backports main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list && \
echo "deb http://deb.debian.org/debian-security/ trixie-security main contrib non-free non-free-firmware" | tee -a /etc/apt/sources.list

RUN apt-get update && \
apt-get install --assume-yes --no-install-recommends \
gnupg2 \
ca-certificates \
g++-aarch64-linux-gnu \
libc6-dev-arm64-cross \
libclang-dev \
build-essential \
pkg-config \
curl \
wget \
file && \
rm -rf /var/lib/apt/lists/*

RUN dpkg --add-architecture arm64 && \
apt-get update && apt-get install --assume-yes --no-install-recommends -f \
libwebkit2gtk-4.1-dev:arm64 \
libxdo-dev:arm64 \
libssl-dev:arm64 \
libgtk-3-dev:arm64 \
libayatana-appindicator3-dev:arm64 \
librsvg2-dev:arm64 \
libatk1.0-dev:arm64 \
libgdk-pixbuf-2.0-dev:arm64 \
libcairo2-dev:arm64 \
libpango1.0-dev:arm64 \
libgtk-3-dev:arm64 \
libsoup2.4-dev:arm64 && \
rm -rf /var/lib/apt/lists/*

# Install NodeJs and pnpm
# RUN wget -qO- https://get.pnpm.io/install.sh | ENV="$HOME/.bashrc" SHELL="$(which bash)" bash - && \
# pnpm env use --global lts

# ENV RUSTUP_DIST_SERVER="https://rsproxy.cn" \
# RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"

# Install Rust
# RUN curl --proto '=https' --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh -s -- -y --default-toolchain nightly --profile minimal
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain nightly --profile minimal
ENV PATH="/root/.cargo/bin:$PATH"
RUN rustup target add armv7-unknown-linux-gnueabi

# Set envs
ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \
CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc \
CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++ \
BINDGEN_EXTRA_CLANG_ARGS_aarch64_unknown_linux_gnu="--sysroot=/usr/aarch64-linux-gnu" \
PKG_CONFIG_PATH="/usr/lib/aarch64-linux-gnu/pkgconfig/:${PKG_CONFIG_PATH}" \
PKG_CONFIG_ALLOW_CROSS=1

WORKDIR /app

0 comments on commit 68f55b9

Please sign in to comment.