forked from Eeveid/lightOps
Compare commits
13 Commits
b1d07e604f
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ffe425d6e | |||
| 7e8d4baac6 | |||
| a79ef99500 | |||
| f1491ba114 | |||
| 8db385cca6 | |||
| 738ff8248f | |||
| acc89faa8b | |||
| 13e4d1f684 | |||
| 975b7b170c | |||
| c47791bc3c | |||
| 70f80355da | |||
| abcfcf7b33 | |||
| aad3db8315 |
@@ -48,40 +48,27 @@ jobs:
|
|||||||
set -eux
|
set -eux
|
||||||
if command -v apt-get >/dev/null 2>&1; then
|
if command -v apt-get >/dev/null 2>&1; then
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install -y build-essential pkg-config sqlite3 curl tar ca-certificates nodejs npm rustc cargo
|
apt-get install -y build-essential pkg-config sqlite3 curl tar ca-certificates nodejs npm
|
||||||
elif command -v dnf >/dev/null 2>&1; then
|
elif command -v dnf >/dev/null 2>&1; then
|
||||||
dnf install -y gcc gcc-c++ make pkgconf-pkg-config sqlite curl tar ca-certificates nodejs npm rust cargo
|
dnf install -y gcc gcc-c++ make pkgconf-pkg-config sqlite curl tar ca-certificates nodejs npm
|
||||||
elif command -v yum >/dev/null 2>&1; then
|
elif command -v yum >/dev/null 2>&1; then
|
||||||
yum install -y gcc gcc-c++ make pkgconfig sqlite curl tar ca-certificates nodejs npm rust cargo
|
yum install -y gcc gcc-c++ make pkgconfig sqlite curl tar ca-certificates nodejs npm
|
||||||
elif command -v pacman >/dev/null 2>&1; then
|
elif command -v pacman >/dev/null 2>&1; then
|
||||||
pacman -Sy --noconfirm base-devel pkgconf sqlite curl tar ca-certificates nodejs npm rust cargo
|
pacman -Sy --noconfirm base-devel pkgconf sqlite curl tar ca-certificates nodejs npm
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: 安装 Rust
|
- name: 安装 Rust
|
||||||
|
env:
|
||||||
|
RUSTUP_DIST_SERVER: https://rsproxy.cn
|
||||||
|
RUSTUP_UPDATE_ROOT: https://rsproxy.cn/rustup
|
||||||
run: |
|
run: |
|
||||||
set -eux
|
set -eux
|
||||||
PATH_BASE="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
if ! command -v rustup >/dev/null 2>&1; then
|
||||||
PATH_EXTRA=""
|
|
||||||
OLD_IFS="$IFS"
|
|
||||||
IFS=':'
|
|
||||||
set -- $PATH
|
|
||||||
IFS="$OLD_IFS"
|
|
||||||
for entry in "$@"; do
|
|
||||||
[ -n "$entry" ] || continue
|
|
||||||
[ "$entry" = "$HOME/.cargo/bin" ] && continue
|
|
||||||
case ":$PATH_BASE:$PATH_EXTRA:" in
|
|
||||||
*":$entry:"*) continue ;;
|
|
||||||
esac
|
|
||||||
PATH_EXTRA="${PATH_EXTRA:+$PATH_EXTRA:}$entry"
|
|
||||||
done
|
|
||||||
export PATH="$PATH_BASE${PATH_EXTRA:+:$PATH_EXTRA}"
|
|
||||||
if ! command -v cargo >/dev/null 2>&1 || ! command -v rustc >/dev/null 2>&1; then
|
|
||||||
[ -f "$HOME/.cargo/env" ] && . "$HOME/.cargo/env"
|
|
||||||
fi
|
|
||||||
if ! command -v cargo >/dev/null 2>&1 || ! command -v rustc >/dev/null 2>&1; then
|
|
||||||
curl --proto '=https' --tlsv1.2 -fsSL https://sh.rustup.rs | sh -s -- -y --profile minimal
|
curl --proto '=https' --tlsv1.2 -fsSL https://sh.rustup.rs | sh -s -- -y --profile minimal
|
||||||
. "$HOME/.cargo/env"
|
|
||||||
fi
|
fi
|
||||||
|
. "$HOME/.cargo/env"
|
||||||
|
rustup toolchain install stable --profile minimal --no-self-update
|
||||||
|
rustup default stable
|
||||||
HOST_TARGET="$(rustc -vV | sed -n 's/^host: //p')"
|
HOST_TARGET="$(rustc -vV | sed -n 's/^host: //p')"
|
||||||
BUILD_TARGET="$HOST_TARGET"
|
BUILD_TARGET="$HOST_TARGET"
|
||||||
if [ "$HOST_TARGET" != "x86_64-unknown-linux-gnu" ] && command -v rustup >/dev/null 2>&1; then
|
if [ "$HOST_TARGET" != "x86_64-unknown-linux-gnu" ] && command -v rustup >/dev/null 2>&1; then
|
||||||
@@ -93,28 +80,22 @@ jobs:
|
|||||||
echo "使用 Rust 构建目标: $BUILD_TARGET"
|
echo "使用 Rust 构建目标: $BUILD_TARGET"
|
||||||
rustc -V
|
rustc -V
|
||||||
cargo -V
|
cargo -V
|
||||||
|
mkdir -p "$HOME/.cargo"
|
||||||
|
printf '%s\n' \
|
||||||
|
'[source.crates-io]' \
|
||||||
|
'replace-with = "rsproxy-sparse"' \
|
||||||
|
'' \
|
||||||
|
'[source.rsproxy-sparse]' \
|
||||||
|
'registry = "sparse+https://rsproxy.cn/index/"' \
|
||||||
|
>"$HOME/.cargo/config.toml"
|
||||||
|
|
||||||
- name: 构建发布包
|
- name: 构建发布包
|
||||||
|
env:
|
||||||
|
RUSTUP_DIST_SERVER: https://rsproxy.cn
|
||||||
|
RUSTUP_UPDATE_ROOT: https://rsproxy.cn/rustup
|
||||||
run: |
|
run: |
|
||||||
set -eux
|
set -eux
|
||||||
PATH_BASE="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
. "$HOME/.cargo/env"
|
||||||
PATH_EXTRA=""
|
|
||||||
OLD_IFS="$IFS"
|
|
||||||
IFS=':'
|
|
||||||
set -- $PATH
|
|
||||||
IFS="$OLD_IFS"
|
|
||||||
for entry in "$@"; do
|
|
||||||
[ -n "$entry" ] || continue
|
|
||||||
[ "$entry" = "$HOME/.cargo/bin" ] && continue
|
|
||||||
case ":$PATH_BASE:$PATH_EXTRA:" in
|
|
||||||
*":$entry:"*) continue ;;
|
|
||||||
esac
|
|
||||||
PATH_EXTRA="${PATH_EXTRA:+$PATH_EXTRA:}$entry"
|
|
||||||
done
|
|
||||||
export PATH="$PATH_BASE${PATH_EXTRA:+:$PATH_EXTRA}"
|
|
||||||
if ! command -v cargo >/dev/null 2>&1 || ! command -v rustc >/dev/null 2>&1; then
|
|
||||||
[ -f "$HOME/.cargo/env" ] && . "$HOME/.cargo/env"
|
|
||||||
fi
|
|
||||||
cd lightops-src
|
cd lightops-src
|
||||||
TAG="$(cat /tmp/lightops-release-tag)"
|
TAG="$(cat /tmp/lightops-release-tag)"
|
||||||
VERSION="${TAG#v}"
|
VERSION="${TAG#v}"
|
||||||
@@ -127,7 +108,7 @@ jobs:
|
|||||||
|
|
||||||
- name: 发布到 Gitea Release
|
- name: 发布到 Gitea Release
|
||||||
env:
|
env:
|
||||||
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
set -eux
|
set -eux
|
||||||
SERVER_URL="${GITHUB_SERVER_URL:-${GITEA_SERVER_URL:-https://gitea.kmux.cn}}"
|
SERVER_URL="${GITHUB_SERVER_URL:-${GITEA_SERVER_URL:-https://gitea.kmux.cn}}"
|
||||||
@@ -137,11 +118,13 @@ jobs:
|
|||||||
GITEA_REPO="${REPOSITORY#*/}"
|
GITEA_REPO="${REPOSITORY#*/}"
|
||||||
cd lightops-src
|
cd lightops-src
|
||||||
TAG="$(cat /tmp/lightops-release-tag)"
|
TAG="$(cat /tmp/lightops-release-tag)"
|
||||||
TARGET_SHA="$(git rev-parse HEAD)"
|
|
||||||
bash scripts/publish-gitea-release.sh \
|
bash scripts/publish-gitea-release.sh \
|
||||||
|
--gitea-url "$GITEA_URL" \
|
||||||
|
--owner "$GITEA_OWNER" \
|
||||||
|
--repo "$GITEA_REPO" \
|
||||||
--tag "$TAG" \
|
--tag "$TAG" \
|
||||||
--title "LightOps ${TAG}" \
|
--title "LightOps ${TAG}" \
|
||||||
--target "$TARGET_SHA" \
|
--target "main" \
|
||||||
--no-create-tag \
|
--no-create-tag \
|
||||||
--no-push-tag \
|
--no-push-tag \
|
||||||
--package target/releases/*.tar.gz \
|
--package target/releases/*.tar.gz \
|
||||||
|
|||||||
@@ -213,14 +213,6 @@ else
|
|||||||
create_result="$(api_post_json_with_status "$(api_url releases)" "$payload")" || fail "创建 Release 请求失败"
|
create_result="$(api_post_json_with_status "$(api_url releases)" "$payload")" || fail "创建 Release 请求失败"
|
||||||
create_status="${create_result##*$'\n'}"
|
create_status="${create_result##*$'\n'}"
|
||||||
release_json="${create_result%$'\n'*}"
|
release_json="${create_result%$'\n'*}"
|
||||||
if [[ "$create_status" == "404" ]]; then
|
|
||||||
log "当前仓库不支持 Releases 或 Token 无 Release 权限,跳过发布"
|
|
||||||
printf '\n发布包已生成但未上传 Release:\n'
|
|
||||||
for package in "${PACKAGES[@]}"; do
|
|
||||||
printf '%s\n' "$package"
|
|
||||||
done
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
[[ "$create_status" == "201" || "$create_status" == "200" ]] || fail "创建 Release 失败,HTTP 状态码:$create_status"
|
[[ "$create_status" == "201" || "$create_status" == "200" ]] || fail "创建 Release 失败,HTTP 状态码:$create_status"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user