mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-10-26 06:50:45 +01:00
GitHub is retiring ubuntu-22.04; move all 94 runs-on pins across 40 workflows to ubuntu-24.04. rust_binaries_release: the arm64 cross step was jammy-era — noble keeps apt sources in deb822 ubuntu.sources (the sources.list edit was a silent no-op that left amd64 repos open to arm64 and 404'd) and ports suites must say noble. Pin deb822 stanzas to amd64 and add noble ports entries.
164 lines
5.1 KiB
YAML
164 lines
5.1 KiB
YAML
name: "rust: build dev volume server binaries"
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
paths:
|
|
- 'seaweed-volume/**'
|
|
- 'seaweed-common/**'
|
|
- '.github/workflows/rust_binaries_dev.yml'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
|
|
cleanup:
|
|
permissions:
|
|
contents: write
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Delete old Rust volume dev assets
|
|
uses: mknejp/delete-release-assets@v1
|
|
continue-on-error: true
|
|
with:
|
|
token: ${{ github.token }}
|
|
tag: dev
|
|
fail-if-no-assets: false
|
|
assets: |
|
|
weed-volume-*
|
|
|
|
build-rust-volume-dev-linux:
|
|
permissions:
|
|
contents: write
|
|
needs: cleanup
|
|
runs-on: ubuntu-24.04
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- target: x86_64-unknown-linux-gnu
|
|
asset_suffix: linux-amd64
|
|
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
|
|
- name: Install Rust toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
|
|
- name: Cache cargo registry and target
|
|
if: runner.environment == 'github-hosted'
|
|
uses: actions/cache@v6
|
|
with:
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
seaweed-volume/target
|
|
key: rust-dev-${{ matrix.target }}-${{ hashFiles('seaweed-volume/Cargo.lock') }}
|
|
restore-keys: |
|
|
rust-dev-${{ matrix.target }}-
|
|
|
|
- name: Set BUILD_TIME
|
|
run: echo BUILD_TIME=$(date -u +%Y%m%d-%H%M) >> "$GITHUB_ENV"
|
|
|
|
- name: Build Rust volume server (large disk)
|
|
env:
|
|
SEAWEEDFS_COMMIT: ${{ github.sha }}
|
|
run: cd seaweed-volume && cargo build --release
|
|
|
|
- name: Package large disk binary
|
|
run: |
|
|
cp seaweed-volume/target/release/weed-volume weed-volume-large-disk
|
|
tar czf "weed-volume-large-disk-${{ env.BUILD_TIME }}-${{ matrix.asset_suffix }}.tar.gz" weed-volume-large-disk
|
|
rm weed-volume-large-disk
|
|
|
|
- name: Build Rust volume server (normal)
|
|
env:
|
|
SEAWEEDFS_COMMIT: ${{ github.sha }}
|
|
run: cd seaweed-volume && cargo build --release --no-default-features
|
|
|
|
- name: Package normal binary
|
|
run: |
|
|
cp seaweed-volume/target/release/weed-volume weed-volume-normal
|
|
tar czf "weed-volume-${{ env.BUILD_TIME }}-${{ matrix.asset_suffix }}.tar.gz" weed-volume-normal
|
|
rm weed-volume-normal
|
|
|
|
- name: Upload dev release assets
|
|
uses: softprops/action-gh-release@v3
|
|
with:
|
|
tag_name: dev
|
|
prerelease: true
|
|
files: |
|
|
weed-volume-large-disk-${{ env.BUILD_TIME }}-${{ matrix.asset_suffix }}.tar.gz
|
|
weed-volume-${{ env.BUILD_TIME }}-${{ matrix.asset_suffix }}.tar.gz
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
build-rust-volume-dev-darwin:
|
|
permissions:
|
|
contents: write
|
|
needs: build-rust-volume-dev-linux
|
|
runs-on: macos-latest
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- target: aarch64-apple-darwin
|
|
asset_suffix: darwin-arm64
|
|
- target: x86_64-apple-darwin
|
|
asset_suffix: darwin-amd64
|
|
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
|
|
- name: Install Rust toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
targets: ${{ matrix.target }}
|
|
|
|
- name: Cache cargo registry and target
|
|
if: runner.environment == 'github-hosted'
|
|
uses: actions/cache@v6
|
|
with:
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
seaweed-volume/target
|
|
key: rust-dev-${{ matrix.target }}-${{ hashFiles('seaweed-volume/Cargo.lock') }}
|
|
restore-keys: |
|
|
rust-dev-${{ matrix.target }}-
|
|
|
|
- name: Set BUILD_TIME
|
|
run: echo BUILD_TIME=$(date -u +%Y%m%d-%H%M) >> "$GITHUB_ENV"
|
|
|
|
- name: Build Rust volume server (large disk)
|
|
env:
|
|
SEAWEEDFS_COMMIT: ${{ github.sha }}
|
|
run: cd seaweed-volume && cargo build --release --target ${{ matrix.target }}
|
|
|
|
- name: Package large disk binary
|
|
run: |
|
|
cp seaweed-volume/target/${{ matrix.target }}/release/weed-volume weed-volume-large-disk
|
|
tar czf "weed-volume-large-disk-${{ env.BUILD_TIME }}-${{ matrix.asset_suffix }}.tar.gz" weed-volume-large-disk
|
|
rm weed-volume-large-disk
|
|
|
|
- name: Build Rust volume server (normal)
|
|
env:
|
|
SEAWEEDFS_COMMIT: ${{ github.sha }}
|
|
run: cd seaweed-volume && cargo build --release --target ${{ matrix.target }} --no-default-features
|
|
|
|
- name: Package normal binary
|
|
run: |
|
|
cp seaweed-volume/target/${{ matrix.target }}/release/weed-volume weed-volume-normal
|
|
tar czf "weed-volume-${{ env.BUILD_TIME }}-${{ matrix.asset_suffix }}.tar.gz" weed-volume-normal
|
|
rm weed-volume-normal
|
|
|
|
- name: Upload dev release assets
|
|
uses: softprops/action-gh-release@v3
|
|
with:
|
|
tag_name: dev
|
|
prerelease: true
|
|
files: |
|
|
weed-volume-large-disk-${{ env.BUILD_TIME }}-${{ matrix.asset_suffix }}.tar.gz
|
|
weed-volume-${{ env.BUILD_TIME }}-${{ matrix.asset_suffix }}.tar.gz
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|