This commit is contained in:
175
.drone.yml
175
.drone.yml
@@ -16,133 +16,52 @@ steps:
|
|||||||
OPENWRT_SUBTARGET: "armv8"
|
OPENWRT_SUBTARGET: "armv8"
|
||||||
OPENWRT_VERMAGIC: "0d90324e4fb76fa1183dcb1f1b600b7a-r1"
|
OPENWRT_VERMAGIC: "0d90324e4fb76fa1183dcb1f1b600b7a-r1"
|
||||||
commands:
|
commands:
|
||||||
- apt-get update
|
- 'apt-get update'
|
||||||
- >
|
- 'DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates curl wget jq git rsync unzip xz-utils zstd gawk file python3-pyelftools build-essential libncurses5-dev libncursesw5-dev libelf-dev gettext xsltproc cpio flex bison tar'
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install -y
|
- 'node --version'
|
||||||
ca-certificates
|
- 'npm --version'
|
||||||
curl
|
- 'python3 --version'
|
||||||
wget
|
- 'echo "Build for OpenWrt ${OPENWRT_TAG} ${OPENWRT_TARGET}/${OPENWRT_SUBTARGET} ${OPENWRT_PKGARCH}"'
|
||||||
jq
|
- 'echo "Expected vermagic: ${OPENWRT_VERMAGIC}"'
|
||||||
git
|
- 'npm install'
|
||||||
rsync
|
- 'SDK_FILE=$(curl -fsSL "https://downloads.openwrt.org/releases/${OPENWRT_TAG}/targets/${OPENWRT_TARGET}/${OPENWRT_SUBTARGET}/" | grep -o "openwrt-sdk-${OPENWRT_TAG}-${OPENWRT_TARGET}-${OPENWRT_SUBTARGET}_gcc-[^\"]*_musl[^\"]*\.Linux-x86_64\.tar\.\(xz\|zst\)" | head -n1)'
|
||||||
unzip
|
- 'test -n "${SDK_FILE}"'
|
||||||
xz-utils
|
- 'SDK_URL="https://downloads.openwrt.org/releases/${OPENWRT_TAG}/targets/${OPENWRT_TARGET}/${OPENWRT_SUBTARGET}/${SDK_FILE}"'
|
||||||
zstd
|
- 'echo "SDK_URL=${SDK_URL}"'
|
||||||
gawk
|
- 'wget -O "${SDK_FILE}" "${SDK_URL}"'
|
||||||
file
|
- 'case "${SDK_FILE}" in *.tar.zst) tar --zstd -xf "${SDK_FILE}" ;; *.tar.xz) tar -xf "${SDK_FILE}" ;; *) echo "Unknown SDK archive format: ${SDK_FILE}"; exit 1 ;; esac'
|
||||||
python3-pyelftools
|
- 'rm -f "${SDK_FILE}"'
|
||||||
build-essential
|
- 'SDK_DIR="$(find . -maxdepth 1 -type d -name "openwrt-sdk-*" | head -n1)"'
|
||||||
libncurses5-dev
|
- 'test -n "${SDK_DIR}"'
|
||||||
libncursesw5-dev
|
- 'echo "SDK_DIR=${SDK_DIR}"'
|
||||||
libelf-dev
|
- 'cd "${SDK_DIR}" && ./scripts/feeds update -a'
|
||||||
gettext
|
- 'cd "${SDK_DIR}" && ./scripts/feeds install -a'
|
||||||
xsltproc
|
- 'cp -r "${DRONE_WORKSPACE}/kmod-amneziawg" "${DRONE_WORKSPACE}/${SDK_DIR}/package/"'
|
||||||
cpio
|
- 'cp -r "${DRONE_WORKSPACE}/amneziawg-tools" "${DRONE_WORKSPACE}/${SDK_DIR}/package/"'
|
||||||
flex
|
- 'cp -r "${DRONE_WORKSPACE}/luci-proto-amneziawg" "${DRONE_WORKSPACE}/${SDK_DIR}/package/"'
|
||||||
bison
|
- 'cd "${SDK_DIR}" && printf "%s\n" "CONFIG_PACKAGE_kmod-amneziawg=m" > .config'
|
||||||
tar
|
- 'cd "${SDK_DIR}" && printf "%s\n" "CONFIG_PACKAGE_amneziawg-tools=y" >> .config'
|
||||||
|
- 'cd "${SDK_DIR}" && printf "%s\n" "CONFIG_PACKAGE_luci-proto-amneziawg=y" >> .config'
|
||||||
- node --version
|
- 'cd "${SDK_DIR}" && printf "%s\n" "CONFIG_PACKAGE_luci-i18n-amneziawg-ru=y" >> .config'
|
||||||
- npm --version
|
- 'cd "${SDK_DIR}" && make defconfig'
|
||||||
- python3 --version
|
- 'cd "${SDK_DIR}" && make package/kmod-amneziawg/download V=s || true'
|
||||||
|
- 'cd "${SDK_DIR}" && make package/kmod-amneziawg/prepare V=s || true'
|
||||||
- echo "Build for OpenWrt ${OPENWRT_TAG} ${OPENWRT_TARGET}/${OPENWRT_SUBTARGET} ${OPENWRT_PKGARCH}"
|
- 'cd "${SDK_DIR}" && make package/kmod-amneziawg/compile V=s'
|
||||||
- echo "Expected vermagic: ${OPENWRT_VERMAGIC}"
|
- 'cd "${SDK_DIR}" && make package/luci-proto-amneziawg/download V=s'
|
||||||
|
- 'cd "${SDK_DIR}" && make package/luci-proto-amneziawg/prepare V=s'
|
||||||
# Оригинальный workflow делает npm install и node index.js.
|
- 'cd "${SDK_DIR}" && make package/luci-proto-amneziawg/compile V=s'
|
||||||
# Здесь оставляю это для совместимости с репозиторием.
|
- 'cd "${SDK_DIR}" && make package/amneziawg-tools/download V=s'
|
||||||
- npm install
|
- 'cd "${SDK_DIR}" && make package/amneziawg-tools/prepare V=s'
|
||||||
|
- 'cd "${SDK_DIR}" && make package/amneziawg-tools/compile V=s'
|
||||||
# Получаем имя SDK так же, как в GitHub Actions
|
- 'mkdir -p awgrelease'
|
||||||
- >
|
- 'POSTFIX="v${OPENWRT_TAG}_${OPENWRT_PKGARCH}_${OPENWRT_TARGET}_${OPENWRT_SUBTARGET}"'
|
||||||
SDK_FILE=$(curl -fsSL "https://downloads.openwrt.org/releases/${OPENWRT_TAG}/targets/${OPENWRT_TARGET}/${OPENWRT_SUBTARGET}/"
|
- 'KMOD_POSTFIX="v${OPENWRT_TAG}_${OPENWRT_PKGARCH}_${OPENWRT_TARGET}_${OPENWRT_SUBTARGET}_${OPENWRT_VERMAGIC}"'
|
||||||
| grep -o "openwrt-sdk-${OPENWRT_TAG}-${OPENWRT_TARGET}-${OPENWRT_SUBTARGET}_gcc-[^\"]*_musl[^\"]*\.Linux-x86_64\.tar\.\(xz\|zst\)"
|
- 'find "${SDK_DIR}/bin/packages" -type f -name "amneziawg-tools*.ipk" -exec sh -c ''f="$1"; ext="${f##*.}"; cp "$f" "awgrelease/amneziawg-tools_${POSTFIX}.${ext}"'' _ {} \;'
|
||||||
| head -n1)
|
- 'find "${SDK_DIR}/bin/packages" -type f -name "luci-proto-amneziawg*.ipk" -exec sh -c ''f="$1"; ext="${f##*.}"; cp "$f" "awgrelease/luci-proto-amneziawg_${POSTFIX}.${ext}"'' _ {} \;'
|
||||||
|
- 'find "${SDK_DIR}/bin/packages" -type f -name "luci-i18n-amneziawg-ru*.ipk" -exec sh -c ''f="$1"; ext="${f##*.}"; cp "$f" "awgrelease/luci-i18n-amneziawg-ru_${POSTFIX}.${ext}"'' _ {} \;'
|
||||||
- test -n "${SDK_FILE}"
|
- 'find "${SDK_DIR}/bin/targets" -type f -name "kmod-amneziawg*.ipk" -exec sh -c ''f="$1"; ext="${f##*.}"; cp "$f" "awgrelease/kmod-amneziawg_${KMOD_POSTFIX}.${ext}"'' _ {} \;'
|
||||||
- export SDK_URL="https://downloads.openwrt.org/releases/${OPENWRT_TAG}/targets/${OPENWRT_TARGET}/${OPENWRT_SUBTARGET}/${SDK_FILE}"
|
- 'ls -lah awgrelease'
|
||||||
- echo "SDK_URL=${SDK_URL}"
|
- 'test -n "$(find awgrelease -type f -name "*.ipk" | head -n1)"'
|
||||||
- wget -O "${SDK_FILE}" "${SDK_URL}"
|
|
||||||
|
|
||||||
- |
|
|
||||||
case "${SDK_FILE}" in
|
|
||||||
*.tar.zst) tar --zstd -xf "${SDK_FILE}" ;;
|
|
||||||
*.tar.xz) tar -xf "${SDK_FILE}" ;;
|
|
||||||
*) echo "Unknown SDK archive format: ${SDK_FILE}"; exit 1 ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
- rm -f "${SDK_FILE}"
|
|
||||||
|
|
||||||
- export SDK_DIR="$(find . -maxdepth 1 -type d -name 'openwrt-sdk-*' | head -n1)"
|
|
||||||
- test -n "${SDK_DIR}"
|
|
||||||
- echo "SDK_DIR=${SDK_DIR}"
|
|
||||||
|
|
||||||
- cd "${SDK_DIR}"
|
|
||||||
- ./scripts/feeds update -a
|
|
||||||
- ./scripts/feeds install -a
|
|
||||||
|
|
||||||
- cp -r ../kmod-amneziawg package/
|
|
||||||
- cp -r ../amneziawg-tools package/
|
|
||||||
- cp -r ../luci-proto-amneziawg package/
|
|
||||||
|
|
||||||
- printf '%s\n' "CONFIG_PACKAGE_kmod-amneziawg=m" > .config
|
|
||||||
- printf '%s\n' "CONFIG_PACKAGE_amneziawg-tools=y" >> .config
|
|
||||||
- printf '%s\n' "CONFIG_PACKAGE_luci-proto-amneziawg=y" >> .config
|
|
||||||
- printf '%s\n' "CONFIG_PACKAGE_luci-i18n-amneziawg-ru=y" >> .config
|
|
||||||
- make defconfig
|
|
||||||
|
|
||||||
- echo "Building kmod-amneziawg"
|
|
||||||
- make package/kmod-amneziawg/download V=s || true
|
|
||||||
- make package/kmod-amneziawg/prepare V=s || true
|
|
||||||
- make package/kmod-amneziawg/compile V=s || true
|
|
||||||
|
|
||||||
- echo "Building luci-proto-amneziawg"
|
|
||||||
- make package/luci-proto-amneziawg/download V=s
|
|
||||||
- make package/luci-proto-amneziawg/prepare V=s
|
|
||||||
- make package/luci-proto-amneziawg/compile V=s
|
|
||||||
|
|
||||||
- echo "Building amneziawg-tools"
|
|
||||||
- make package/amneziawg-tools/download V=s
|
|
||||||
- make package/amneziawg-tools/prepare V=s
|
|
||||||
- make package/amneziawg-tools/compile V=s
|
|
||||||
|
|
||||||
- echo "Search built packages"
|
|
||||||
- find bin/ -name "*.?pk" | grep -E "(amneziawg|luci-proto-amneziawg|luci-i18n-amneziawg)" || true
|
|
||||||
|
|
||||||
- mkdir -p ../awgrelease
|
|
||||||
- export POSTFIX="v${OPENWRT_TAG}_${OPENWRT_PKGARCH}_${OPENWRT_TARGET}_${OPENWRT_SUBTARGET}"
|
|
||||||
- export KMOD_POSTFIX="v${OPENWRT_TAG}_${OPENWRT_PKGARCH}_${OPENWRT_TARGET}_${OPENWRT_SUBTARGET}_${OPENWRT_VERMAGIC}"
|
|
||||||
|
|
||||||
- >
|
|
||||||
find bin/packages -type f -name 'amneziawg-tools*.?pk'
|
|
||||||
-exec sh -c 'f="$1"; p="$2"; ext="${f##*.}"; cp "$f" "../awgrelease/amneziawg-tools_${p}.${ext}"' _ {} "${POSTFIX}" \;
|
|
||||||
|
|
||||||
- >
|
|
||||||
find bin/packages -type f -name 'luci-proto-amneziawg*.?pk'
|
|
||||||
-exec sh -c 'f="$1"; p="$2"; ext="${f##*.}"; cp "$f" "../awgrelease/luci-proto-amneziawg_${p}.${ext}"' _ {} "${POSTFIX}" \;
|
|
||||||
|
|
||||||
- >
|
|
||||||
find bin/packages -type f -name 'luci-i18n-amneziawg-ru*.?pk'
|
|
||||||
-exec sh -c 'f="$1"; p="$2"; ext="${f##*.}"; cp "$f" "../awgrelease/luci-i18n-amneziawg-ru_${p}.${ext}"' _ {} "${POSTFIX}" \;
|
|
||||||
|
|
||||||
- >
|
|
||||||
find bin/targets -type f -name 'kmod-amneziawg*.?pk'
|
|
||||||
-exec sh -c 'f="$1"; p="$2"; ext="${f##*.}"; cp "$f" "../awgrelease/kmod-amneziawg_${p}.${ext}"' _ {} "${KMOD_POSTFIX}" \;
|
|
||||||
|
|
||||||
- cd ..
|
|
||||||
- ls -lah awgrelease
|
|
||||||
- test -n "$(find awgrelease -type f -name '*.?pk' | head -n1)"
|
|
||||||
|
|
||||||
- |
|
|
||||||
cat > release_notes.md <<EOF
|
|
||||||
AWG packages for OpenWrt ${OPENWRT_TAG}
|
|
||||||
|
|
||||||
Target: ${OPENWRT_TARGET}/${OPENWRT_SUBTARGET}
|
|
||||||
PkgArch: ${OPENWRT_PKGARCH}
|
|
||||||
Vermagic: ${OPENWRT_VERMAGIC}
|
|
||||||
|
|
||||||
Built by Drone from tag ${DRONE_TAG}.
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- name: publish-release
|
- name: publish-release
|
||||||
image: plugins/gitea-release
|
image: plugins/gitea-release
|
||||||
@@ -152,8 +71,6 @@ steps:
|
|||||||
from_secret: gitea_token
|
from_secret: gitea_token
|
||||||
files:
|
files:
|
||||||
- awgrelease/*.ipk
|
- awgrelease/*.ipk
|
||||||
- awgrelease/*.apk
|
|
||||||
checksum: sha256
|
checksum: sha256
|
||||||
file_exists: overwrite
|
file_exists: overwrite
|
||||||
title: AWG for OpenWrt 24.10.2
|
title: AWG for OpenWrt 24.10.2
|
||||||
note: release_notes.md
|
|
||||||
|
|||||||
Reference in New Issue
Block a user