From 856dcc9f44b63b3d7809fb0acde7148328b858a1 Mon Sep 17 00:00:00 2001 From: "AB from home.homenet" Date: Fri, 24 Oct 2025 21:05:07 +0300 Subject: [PATCH] Drop bad ci --- .github/workflows/rust.yml | 116 +++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 .github/workflows/rust.yml diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..974a836 --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,116 @@ +name: Rust Docker Build + +on: + push: + branches: + - 'RUST' + +jobs: + test-build: + runs-on: self-hosted + outputs: + rust-version: ${{ steps.vars.outputs.rust_version }} + sha-short: ${{ steps.vars.outputs.sha_short }} + steps: + - uses: actions/checkout@v4 + + - name: Set up Rust toolchain cache + uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo- + + - name: Extract version from Cargo.toml + id: extract_version + run: | + VERSION=$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/') + echo "cargo_version=$VERSION" >> $GITHUB_OUTPUT + echo "Extracted version: $VERSION" + + - name: Set outputs + id: vars + run: | + echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + echo "rust_version=rs-${{ steps.extract_version.outputs.cargo_version }}" >> $GITHUB_OUTPUT + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Test build (linux/amd64 only) + uses: docker/build-push-action@v5 + with: + context: . + platforms: linux/amd64 + push: false + cache-from: | + type=registry,ref=ultradesu/outfleet:deps-cache + type=registry,ref=ultradesu/outfleet:builder-cache + build-args: | + GIT_COMMIT=${{ github.sha }} + GIT_COMMIT_SHORT=${{ steps.vars.outputs.sha_short }} + BUILD_DATE=$(date -u +'%Y-%m-%d %H:%M:%S UTC') + BRANCH_NAME=${GITHUB_REF#refs/heads/} + CARGO_VERSION=${{ steps.extract_version.outputs.cargo_version }} + docker: + runs-on: ubuntu-latest + needs: self-hosted + steps: + - uses: actions/checkout@v4 + + - name: Set build variables + id: vars + run: | + echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + echo "sha_full=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT + echo "build_date=$(date -u +'%Y-%m-%d %H:%M:%S UTC')" >> $GITHUB_OUTPUT + echo "branch_name=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT + + - name: Extract version from Cargo.toml + id: extract_version + run: | + VERSION=$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/') + echo "cargo_version=$VERSION" >> $GITHUB_OUTPUT + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + platforms: linux/amd64,linux/arm64 + push: true + cache-from: | + type=registry,ref=ultradesu/outfleet:deps-cache + type=registry,ref=ultradesu/outfleet:builder-cache + type=registry,ref=ultradesu/outfleet:rust-buildcache + cache-to: | + type=registry,ref=ultradesu/outfleet:deps-cache,mode=max + type=registry,ref=ultradesu/outfleet:builder-cache,mode=max + type=registry,ref=ultradesu/outfleet:rust-buildcache,mode=max + build-args: | + GIT_COMMIT=${{ steps.vars.outputs.sha_full }} + GIT_COMMIT_SHORT=${{ steps.vars.outputs.sha_short }} + BUILD_DATE=${{ steps.vars.outputs.build_date }} + BRANCH_NAME=${{ steps.vars.outputs.branch_name }} + CARGO_VERSION=${{ steps.extract_version.outputs.cargo_version }} + tags: | + ultradesu/outfleet:rs-${{ steps.extract_version.outputs.cargo_version }} + ultradesu/outfleet:rs-${{ steps.extract_version.outputs.cargo_version }}-${{ steps.vars.outputs.sha_short }} + ultradesu/outfleet:rust-latest