Compare commits
2 Commits
96a32e13a8
...
735fd1b674
| Author | SHA1 | Date | |
|---|---|---|---|
|
735fd1b674
|
|||
|
7c1725427b
|
@@ -7,13 +7,8 @@ on:
|
|||||||
- '.gitea/workflows/build-arch-builder.yaml'
|
- '.gitea/workflows/build-arch-builder.yaml'
|
||||||
jobs:
|
jobs:
|
||||||
"Build arch-builder docker images":
|
"Build arch-builder docker images":
|
||||||
runs-on: hostinger
|
runs-on: woryzen
|
||||||
steps:
|
steps:
|
||||||
-
|
|
||||||
name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
with:
|
|
||||||
driver: docker-container
|
|
||||||
-
|
-
|
||||||
name: Login to Gitea container registry
|
name: Login to Gitea container registry
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
@@ -25,64 +20,83 @@ jobs:
|
|||||||
name: Build and push arch-builder base images
|
name: Build and push arch-builder base images
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
|
builder: multiplatform-builder
|
||||||
context: "{{defaultContext}}:arch-builder"
|
context: "{{defaultContext}}:arch-builder"
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
push: true
|
push: true
|
||||||
pull: true
|
pull: true
|
||||||
tags: |
|
tags: |
|
||||||
"gitea.woggioni.net/woggioni/arch-builder:base"
|
"gitea.woggioni.net/woggioni/arch-builder:base"
|
||||||
cache-from: type=registry,ref=gitea.woggioni.net/woggioni/arch-builder:base-buildx
|
|
||||||
cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/arch-builder:base-buildx
|
|
||||||
target: base
|
target: base
|
||||||
-
|
-
|
||||||
name: Build and push arch-builder kernel images
|
name: Build and push arch-builder kernel images
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
|
builder: multiplatform-builder
|
||||||
context: "{{defaultContext}}:arch-builder"
|
context: "{{defaultContext}}:arch-builder"
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
push: true
|
push: true
|
||||||
pull: true
|
pull: true
|
||||||
tags: |
|
tags: |
|
||||||
"gitea.woggioni.net/woggioni/arch-builder:kernel"
|
"gitea.woggioni.net/woggioni/arch-builder:kernel"
|
||||||
cache-from: type=registry,ref=gitea.woggioni.net/woggioni/arch-builder:kernel-buildx
|
|
||||||
cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/arch-builder:kernel-buildx
|
|
||||||
target: kernel
|
target: kernel
|
||||||
-
|
-
|
||||||
name: Build and push arch-builder rust images
|
name: Build and push arch-builder rust images
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
|
builder: multiplatform-builder
|
||||||
context: "{{defaultContext}}:arch-builder"
|
context: "{{defaultContext}}:arch-builder"
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
push: true
|
push: true
|
||||||
pull: true
|
pull: true
|
||||||
tags: |
|
tags: |
|
||||||
"gitea.woggioni.net/woggioni/arch-builder:rust"
|
"gitea.woggioni.net/woggioni/arch-builder:rust"
|
||||||
cache-from: type=registry,ref=gitea.woggioni.net/woggioni/arch-builder:rust-buildx
|
|
||||||
cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/arch-builder:rust-buildx
|
|
||||||
target: rust
|
target: rust
|
||||||
-
|
-
|
||||||
name: Build and push arch-builder rust full images
|
name: Build and push arch-builder rust full images
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
|
builder: multiplatform-builder
|
||||||
context: "{{defaultContext}}:arch-builder"
|
context: "{{defaultContext}}:arch-builder"
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
push: true
|
push: true
|
||||||
pull: true
|
pull: true
|
||||||
tags: |
|
tags: |
|
||||||
"gitea.woggioni.net/woggioni/arch-builder:rust-full"
|
"gitea.woggioni.net/woggioni/arch-builder:rust-full"
|
||||||
cache-from: type=registry,ref=gitea.woggioni.net/woggioni/arch-builder:rust-full-buildx
|
|
||||||
cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/arch-builder:rust-full-buildx
|
|
||||||
target: rust-full
|
target: rust-full
|
||||||
|
-
|
||||||
|
name: Build and push arch-builder rust sccache images
|
||||||
|
uses: docker/build-push-action@v6
|
||||||
|
with:
|
||||||
|
builder: multiplatform-builder
|
||||||
|
context: "{{defaultContext}}:arch-builder"
|
||||||
|
platforms: linux/amd64
|
||||||
|
push: true
|
||||||
|
pull: true
|
||||||
|
tags: |
|
||||||
|
"gitea.woggioni.net/woggioni/arch-builder:rust-sccache"
|
||||||
|
target: rust-sccache
|
||||||
|
-
|
||||||
|
name: Build and push arch-builder rust full sccache images
|
||||||
|
uses: docker/build-push-action@v6
|
||||||
|
with:
|
||||||
|
builder: multiplatform-builder
|
||||||
|
context: "{{defaultContext}}:arch-builder"
|
||||||
|
platforms: linux/amd64
|
||||||
|
push: true
|
||||||
|
pull: true
|
||||||
|
tags: |
|
||||||
|
"gitea.woggioni.net/woggioni/arch-builder:rust-full-sccache"
|
||||||
|
target: rust-full-sccache
|
||||||
-
|
-
|
||||||
name: Build and push arch-builder gitea_act_runner images
|
name: Build and push arch-builder gitea_act_runner images
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
|
builder: multiplatform-builder
|
||||||
context: "{{defaultContext}}:arch-builder"
|
context: "{{defaultContext}}:arch-builder"
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
push: true
|
push: true
|
||||||
pull: true
|
pull: true
|
||||||
tags: |
|
tags: |
|
||||||
"gitea.woggioni.net/woggioni/arch-builder:gitea_act_runner"
|
"gitea.woggioni.net/woggioni/arch-builder:gitea_act_runner"
|
||||||
cache-from: type=registry,ref=gitea.woggioni.net/woggioni/arch-builder:gitea-buildx
|
|
||||||
cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/arch-builder:gitea-buildx
|
|
||||||
target: gitea_act_runner
|
target: gitea_act_runner
|
||||||
|
|||||||
@@ -17,26 +17,13 @@ jobs:
|
|||||||
username: woggioni
|
username: woggioni
|
||||||
password: ${{ secrets.PUBLISHER_TOKEN }}
|
password: ${{ secrets.PUBLISHER_TOKEN }}
|
||||||
-
|
-
|
||||||
name: Build and push sserver-rust images amd64
|
name: Build and push sserver-rust images
|
||||||
uses: docker/build-push-action@v6
|
|
||||||
with:
|
|
||||||
context: "{{defaultContext}}:shadowsocks-rust"
|
|
||||||
platforms: |
|
|
||||||
linux/amd64
|
|
||||||
push: true
|
|
||||||
pull: false
|
|
||||||
ssh: default=/home/luser/.ssh/id_ed25519
|
|
||||||
tags: |
|
|
||||||
"gitea.woggioni.net/woggioni/sserver-rust:latest"
|
|
||||||
"gitea.woggioni.net/woggioni/sserver-rust:v1.24.0"
|
|
||||||
build-args: "VERSION=1.24.0"
|
|
||||||
-
|
|
||||||
name: Build and push sserver-rust images aarch64
|
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
builder: multiplatform-builder
|
builder: multiplatform-builder
|
||||||
context: "{{defaultContext}}:shadowsocks-rust"
|
context: "{{defaultContext}}:shadowsocks-rust"
|
||||||
platforms: |
|
platforms: |
|
||||||
|
linux/amd64
|
||||||
linux/arm64
|
linux/arm64
|
||||||
push: true
|
push: true
|
||||||
pull: false
|
pull: false
|
||||||
|
|||||||
+29
-1
@@ -81,6 +81,34 @@ WORKDIR /home/luser
|
|||||||
FROM base AS rust
|
FROM base AS rust
|
||||||
RUN mkdir -p /etc/cargo
|
RUN mkdir -p /etc/cargo
|
||||||
COPY --chown=1000:1000 config.toml /home/luser/.cargo/config.toml
|
COPY --chown=1000:1000 config.toml /home/luser/.cargo/config.toml
|
||||||
|
RUN --mount=type=cache,target=/var/cache/pacman pacman -S --noconfirm --needed \
|
||||||
|
rustup \
|
||||||
|
trunk \
|
||||||
|
llvm \
|
||||||
|
clang
|
||||||
|
|
||||||
|
FROM rust AS rust-full
|
||||||
|
RUN --mount=type=cache,target=/var/cache/pacman pacman -S --noconfirm --needed \
|
||||||
|
hidapi \
|
||||||
|
protobuf
|
||||||
|
USER luser
|
||||||
|
WORKDIR /home/luser
|
||||||
|
RUN rustup update
|
||||||
|
RUN rustup toolchain install stable-x86_64-unknown-linux-gnu --profile minimal
|
||||||
|
RUN rustup component add rustfmt
|
||||||
|
RUN rustup target add \
|
||||||
|
x86_64-unknown-linux-musl \
|
||||||
|
x86_64-unknown-linux-gnu \
|
||||||
|
armv7-unknown-linux-musleabihf \
|
||||||
|
arm-unknown-linux-musleabi \
|
||||||
|
aarch64-unknown-linux-musl \
|
||||||
|
aarch64-unknown-linux-gnu \
|
||||||
|
wasm32-unknown-unknown \
|
||||||
|
wasm32-wasip2
|
||||||
|
|
||||||
|
FROM base AS rust-sccache
|
||||||
|
RUN mkdir -p /etc/cargo
|
||||||
|
COPY --chown=1000:1000 config-sccache.toml /home/luser/.cargo/config.toml
|
||||||
COPY --chown=1000:1000 sccache_config.toml /home/luser/.config/sccache/config
|
COPY --chown=1000:1000 sccache_config.toml /home/luser/.config/sccache/config
|
||||||
RUN --mount=type=cache,target=/var/cache/pacman pacman -S --noconfirm --needed \
|
RUN --mount=type=cache,target=/var/cache/pacman pacman -S --noconfirm --needed \
|
||||||
rustup \
|
rustup \
|
||||||
@@ -89,7 +117,7 @@ RUN --mount=type=cache,target=/var/cache/pacman pacman -S --noconfirm --needed \
|
|||||||
llvm \
|
llvm \
|
||||||
clang
|
clang
|
||||||
|
|
||||||
FROM rust AS rust-full
|
FROM rust-sccache AS rust-full-sccache
|
||||||
RUN --mount=type=cache,target=/var/cache/pacman pacman -S --noconfirm --needed \
|
RUN --mount=type=cache,target=/var/cache/pacman pacman -S --noconfirm --needed \
|
||||||
hidapi \
|
hidapi \
|
||||||
protobuf
|
protobuf
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
[target.aarch64-unknown-linux-musl]
|
||||||
|
linker = "/opt/x-tools/aarch64-unknown-linux-musl/bin/aarch64-unknown-linux-musl-ld"
|
||||||
|
[target.x86_64-unknown-linux-musl]
|
||||||
|
linker = "/opt/x-tools/x86_64-unknown-linux-musl/bin/x86_64-unknown-linux-musl-ld"
|
||||||
|
[target.x86_64-pc-windows-gnu]
|
||||||
|
linker = "/opt/x-tools/x86_64-w64-mingw32/bin/x86_64-w64-mingw32-gcc"
|
||||||
|
[target.armv7-unknown-linux-musleabihf]
|
||||||
|
linker = "/opt/x-tools/arm-unknown-linux-musleabihf/bin/arm-unknown-linux-musleabihf-ld"
|
||||||
|
|
||||||
|
[registries.gitea]
|
||||||
|
global-credential-providers = ["cargo:token"]
|
||||||
|
index = "sparse+https://gitea.woggioni.net/api/packages/woggioni/cargo/"
|
||||||
|
|
||||||
|
[net]
|
||||||
|
git-fetch-with-cli = true
|
||||||
|
|
||||||
|
[profile.release]
|
||||||
|
opt-level = 3
|
||||||
|
lto = true
|
||||||
|
strip = true
|
||||||
|
|
||||||
|
[build]
|
||||||
|
rustc-wrapper = "/usr/bin/sccache"
|
||||||
@@ -18,6 +18,3 @@ git-fetch-with-cli = true
|
|||||||
opt-level = 3
|
opt-level = 3
|
||||||
lto = true
|
lto = true
|
||||||
strip = true
|
strip = true
|
||||||
|
|
||||||
[build]
|
|
||||||
rustc-wrapper = "/usr/bin/sccache"
|
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
FROM --platform=$BUILDPLATFORM gitea.woggioni.net/woggioni/arch-builder:rust-full AS base
|
FROM --platform=$BUILDPLATFORM gitea.woggioni.net/woggioni/arch-builder:rust-full AS base
|
||||||
|
|
||||||
ARG VERSION TARGETPLATFORM BUILDPLATFORM
|
ARG VERSION TARGETPLATFORM BUILDPLATFORM
|
||||||
|
|
||||||
WORKDIR /home/luser/shadowsocks-rust
|
WORKDIR /home/luser/shadowsocks-rust
|
||||||
|
#ADD --chown=luser:luser git@github.com:shadowsocks/shadowsocks-rust.git#v${VERSION} .
|
||||||
ADD --chown=luser:luser git@github.com:shadowsocks/shadowsocks-rust.git#v${VERSION} .
|
RUN git clone --depth 1 --branch "v${VERSION}" https://github.com/shadowsocks/shadowsocks-rust.git .
|
||||||
|
|
||||||
FROM base AS builder-linux_386
|
FROM base AS builder-linux_386
|
||||||
ENV RUST_TARGET="i686-unknown-linux-musl"
|
ENV RUST_TARGET="i686-unknown-linux-musl"
|
||||||
@@ -24,7 +23,7 @@ ENV RUST_TARGET="arm-unknown-linux-musleabihf"
|
|||||||
ENV CC_armv7_unknown_linux_musleabihf=/opt/x-tools/arm-unknown-linux-musleabi/bin/arm-unknown-linux-musleabi-gcc
|
ENV CC_armv7_unknown_linux_musleabihf=/opt/x-tools/arm-unknown-linux-musleabi/bin/arm-unknown-linux-musleabi-gcc
|
||||||
ENV CXX_armv7_unknown_linux_musleabihf=/opt/x-tools/arm-unknown-linux-musleabi/bin/arm-unknown-linux-musleabi-g++
|
ENV CXX_armv7_unknown_linux_musleabihf=/opt/x-tools/arm-unknown-linux-musleabi/bin/arm-unknown-linux-musleabi-g++
|
||||||
|
|
||||||
FROM builder-${TARGETPLATFORM/\//_} AS builder
|
FROM builder-${TARGETPLATFORM//\//_} AS builder
|
||||||
RUN rustup target add $RUST_TARGET
|
RUN rustup target add $RUST_TARGET
|
||||||
RUN cargo +stable build --locked --target "$RUST_TARGET" --release --features "full,aead-cipher-extra,aead-cipher-2022-extra,security-replay-attack-detect" \
|
RUN cargo +stable build --locked --target "$RUST_TARGET" --release --features "full,aead-cipher-extra,aead-cipher-2022-extra,security-replay-attack-detect" \
|
||||||
&& mv target/$RUST_TARGET/release/ss* target/release/
|
&& mv target/$RUST_TARGET/release/ss* target/release/
|
||||||
|
|||||||
Reference in New Issue
Block a user