feat: add remote file download, extraction, and packaging process in build.yml (#245)

* fix

* update README.md
This commit is contained in:
houseme
2025-03-01 23:14:30 +08:00
committed by GitHub
parent 40f6185b24
commit e25cd9b5f6
2 changed files with 77 additions and 18 deletions

View File

@@ -15,9 +15,9 @@ jobs:
strategy:
matrix:
variant:
- { profile: dev, target: x86_64-unknown-linux-gnu, glibc: "default" }
- { profile: release, target: x86_64-unknown-linux-gnu, glibc: "default" }
- { profile: release, target: x86_64-unknown-linux-gnu, glibc: "2.31" }
- { profile: dev, target: x86_64-unknown-linux-gnu, glibc: "default" }
- { profile: release, target: x86_64-unknown-linux-gnu, glibc: "default" }
- { profile: release, target: x86_64-unknown-linux-gnu, glibc: "2.31" }
steps:
- uses: actions/checkout@v4
@@ -32,10 +32,70 @@ jobs:
--target ${{ matrix.variant.target }} \
--glibc ${{ matrix.variant.glibc }}
# Download the zip fileLinux/macOS used bash
- name: Download Static Assets (Linux/macOS)
run: |
url="https://dl.rustfs.com/console/rustfs-console-latest.zip"
file=$(basename "$url")
curl -L -o "$file" "$url"
if [ ! -f "$file" ]; then
echo "Error: Failed to download $file"
exit 1
fi
echo "Downloaded $file successfully"
ls -l "$file"
ls -la
# Unzip the zip fileLinux/macOS used bash
- name: Extract Static Assets (Linux/macOS)
run: |
ls -la
# Find the first .zip or .tar.gz file
file=""
for f in *.zip *.tar.gz; do
if [ -f "$f" ]; then
file="$f"
break
fi
done
if [ -z "$file" ]; then
echo "Error: No .zip or .tar.gz file found in the current directory"
ls -la # Displays the contents of the current directory for debugging
exit 1
fi
# Outputs the name of the file found
echo "Found file: $file"
mkdir -p static
if [[ "$file" == *.zip ]]; then
echo "Unzipping $file to static/"
unzip "$file" -d static || { echo "Error: Failed to unzip $file"; exit 1; }
elif [[ "$file" == *.tar.gz ]]; then
echo "Extracting $file to static/"
tar -xzf "$file" -C static || { echo "Error: Failed to extract $file"; exit 1; }
else
echo "Error: Unsupported file format: $file"
exit 1
fi
# Check whether the decompression is successful
if [ $? -ne 0 ]; then
echo "Error: Failed to extract $file"
exit 2
fi
rm "$file"
ls -la static
# Packing binaries and static directoryLinux/macOS used bash
- name: Package Binary and Static Assets (Linux/macOS)
run: |
mkdir -p release-package
cp target/artifacts/rustfs.${{ matrix.variant.profile }}.${{ matrix.variant.target }}.${{ matrix.variant.glibc }} release-package/
cp -r static release-package/
zip -r rustfs${{ matrix.variant.profile }}-${{ matrix.variant.target }}-${{ matrix.variant.glibc }}.zip release-package/*
ls -la
- uses: actions/upload-artifact@v4
with:
name: rustfs.${{ matrix.variant.profile }}.${{ matrix.variant.target }}.${{ matrix.variant.glibc }}
path: ./target/artifacts/*
path: ./release-package/rustfs.${{ matrix.variant.profile }}.${{ matrix.variant.target }}.${{ matrix.variant.glibc }}.zip
merge:
runs-on: ubuntu-latest

View File

@@ -1,27 +1,26 @@
# How to compile RustFS
| Must package | Version |
| - | - |
| Rust | 1.8.5 |
| protoc | 27.0 |
| flatc | 24.0+ |
| Must package | Version |
|--------------|---------|
| Rust | 1.8.5 |
| protoc | 27.0 |
| flatc | 24.0+ |
Download Links:
Download Links:
https://github.com/google/flatbuffers/releases/download/v24.3.25/Linux.flatc.binary.g++-13.zip
https://github.com/protocolbuffers/protobuf/releases/download/v27.0/protoc-27.0-linux-x86_64.zip
Or use Docker:
- uses: arduino/setup-protoc@v3
with:
version: "27.0"
- uses: Nugine/setup-flatc@v1
with:
version: "24.3.25"
with:
version: "27.0"
- uses: Nugine/setup-flatc@v1
with:
version: "24.3.25"
# How to add Console web
@@ -31,7 +30,6 @@ Or use Docker:
3. Compile RustFS
# Star RustFS
Add Env infomation:
@@ -46,6 +44,7 @@ export RUSTFS_SERVER_ENDPOINT="http://127.0.0.1:9000"
```
You need replace your real data folder:
```
./rustfs /data/rustfs
```