Compare commits

...

9 Commits

Author SHA1 Message Date
8affad428e fix build
All checks were successful
Build / Build - linux (push) Successful in 3m30s
Build / Build - windows (push) Successful in 1m35s
2025-12-11 21:28:15 +01:00
ef132c35f3 fix build
Some checks failed
Build / Build - linux (push) Successful in 4m55s
Build / Build - macos (push) Failing after 1m47s
Build / Build - windows (push) Successful in 1m35s
2025-12-11 21:16:55 +01:00
e6c30dc403 fix build
Some checks failed
Build / Build - linux (push) Successful in 3m33s
Build / Build - macos (push) Failing after 9s
Build / Build - windows (push) Successful in 2m55s
2025-12-11 21:01:25 +01:00
f9f81e6dcf fix build
All checks were successful
Build / Build - linux (push) Successful in 3m47s
2025-12-11 20:49:54 +01:00
e1102b8590 fix build
All checks were successful
Build / Build - linux (push) Successful in 6m53s
2025-12-11 20:27:12 +01:00
7d3f95ae82 remove debug
All checks were successful
Build / Build - linux (push) Successful in 3m46s
2025-12-11 20:19:51 +01:00
42d0c0c02a fix build?
All checks were successful
Build / Build - linux (push) Successful in 3m57s
2025-12-11 20:13:55 +01:00
22af721701 tar debug
Some checks failed
Build / Build - linux (push) Has been cancelled
2025-12-11 20:11:55 +01:00
bd56cd31e4 build fix?
All checks were successful
Build / Build - linux (push) Successful in 6m30s
2025-12-11 19:58:27 +01:00
3 changed files with 42 additions and 46 deletions

View File

@@ -12,62 +12,34 @@ jobs:
runs-on: gitea-runner
container:
image: ${{ matrix.docker_image }}
volumes:
- /tmp/gitea-sccache:/tmp/sccache
strategy:
matrix:
include:
- platform: linux
docker_image: gitea.staspast.click/stas/rust-node-builder:latest
docker_image: gitea.staspast.click/stas/rust-node-builder:v5
target: x86_64-unknown-linux-gnu
artifact_name: rlogg-linux-x86_64
binary_extension: ""
setup_cmd: ""
# - platform: macos
# docker_image: messense/cargo-zigbuild:latest
# target: x86_64-apple-darwin
# artifact_name: rlogg-macos-x86_64
# binary_extension: ""
# setup_cmd: ""
# - platform: windows
# docker_image: rust:latest
# target: x86_64-pc-windows-gnu
# artifact_name: rlogg-windows-x86_64
# binary_extension: ".exe"
# setup_cmd: "apt-get update && apt-get install -y mingw-w64"
- platform: windows
docker_image: gitea.staspast.click/stas/rust-node-builder:v5
target: x86_64-pc-windows-gnu
artifact_name: rlogg-windows-x86_64
binary_extension: ".exe"
setup_cmd: ""
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Generate dependency hash
id: deps_hash
- name: Configure sccache
run: |
# Create a hash of dependencies only (excludes package version)
# This prevents cache invalidation on version bumps
{
# Get all dependencies from Cargo.toml (skip package.version)
grep -A 9999 '^\[dependencies' Cargo.toml 2>/dev/null || true
grep -A 9999 '^\[dev-dependencies' Cargo.toml 2>/dev/null || true
grep -A 9999 '^\[build-dependencies' Cargo.toml 2>/dev/null || true
# Include Cargo.lock for exact dependency versions
cat Cargo.lock 2>/dev/null || true
} | sha256sum | cut -d' ' -f1 > /tmp/deps_hash.txt
echo "hash=$(cat /tmp/deps_hash.txt)" >> $GITHUB_OUTPUT
- name: Cache Cargo Dependencies
uses: https://gitea.com/actions/cache@v3
with:
# Path to cache: The 'target' directory contains all compiled libraries
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
# Key: Changes only when dependencies change, not when version changes
key: ${{ runner.os }}-cargo-${{ steps.deps_hash.outputs.hash }}-${{ matrix.target }}
# Restore Keys: Fallback to any cache for this target
restore-keys: |
${{ runner.os }}-cargo-${{ steps.deps_hash.outputs.hash }}-
${{ runner.os }}-cargo-
# Configure sccache cache directory (persists on runner between builds)
mkdir -p /tmp/sccache
echo "SCCACHE_DIR=/tmp/sccache" >> $GITHUB_ENV
echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV
- name: Setup cross-compilation tools
if: matrix.setup_cmd != ''
@@ -80,11 +52,17 @@ jobs:
run: |
if [ "${{ matrix.platform }}" = "macos" ]; then
cargo zigbuild --release --target ${{ matrix.target }}
else
# Define RUSTFLAGS to use the system linker (cc) and disable debug compression
elif [ "${{ matrix.platform }}" = "linux" ]; then
cargo build --release
else
# Cross-compile for other targets (e.g., Windows)
cargo build --release --target ${{ matrix.target }}
fi
# Show sccache statistics
echo "=== sccache stats ==="
sccache --show-stats
- name: Prepare artifact
shell: sh
run: |

View File

@@ -1 +1 @@
docker build -t gitea.staspast.click/stas/rust-node-builder:latest -f linux-build.Dockerfile . && docker push gitea.staspast.click/stas/rust-node-builder:latest
docker build -t gitea.staspast.click/stas/rust-node-builder:v5 -f linux-build.Dockerfile . && docker push gitea.staspast.click/stas/rust-node-builder:v5

View File

@@ -1,8 +1,26 @@
FROM rust:latest
# Install system dependencies and tools
RUN apt-get update && \
apt-get install -y --no-install-recommends \
nodejs \
npm \
tar \
gzip \
&& rm -rf /var/lib/apt/lists/*
curl \
mingw-w64 \
&& rm -rf /var/lib/apt/lists/* && \
# Check if /bin/tar is BusyBox and replace it with GNU tar
if /bin/tar --version 2>&1 | grep -q "BusyBox"; then \
cp /usr/bin/tar /bin/tar.gnu && \
rm -f /bin/tar && \
mv /bin/tar.gnu /bin/tar; \
fi
# Install sccache for Rust compilation caching
RUN SCCACHE_VERSION=0.7.4 && \
SCCACHE_URL="https://github.com/mozilla/sccache/releases/download/v${SCCACHE_VERSION}/sccache-v${SCCACHE_VERSION}-x86_64-unknown-linux-musl.tar.gz" && \
curl -L "$SCCACHE_URL" | tar xz && \
chmod +x sccache-v${SCCACHE_VERSION}-x86_64-unknown-linux-musl/sccache && \
mv sccache-v${SCCACHE_VERSION}-x86_64-unknown-linux-musl/sccache /usr/local/bin/ && \
rm -rf sccache-v${SCCACHE_VERSION}-x86_64-unknown-linux-musl