Padavan-TP-Link-Archerc5-v4/.github/workflows/Build firmware LITE.yml

188 lines
7.5 KiB
YAML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: Build firmware LITE
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *' # Запуск каждый день в 00:00 UTC
push:
tags:
- '*'
jobs:
build:
runs-on: ubuntu-latest
container: registry.gitlab.com/hadzhioglu/padavan-ng
defaults: { run: { shell: bash } }
steps:
- uses: actions/checkout@v4
- name: Get variables
run: |
cp "build LITE.config" build.config
sed -i 's|\r$||g' variables build.config
. <(cat variables build.config)
PADAVAN_THEMES="${PADAVAN_THEMES[*]}"
for v in "${!PADAVAN_@}" "${!CONFIG_@}"; do
echo "$v=${!v}" >> $GITHUB_ENV
done
- name: Download sources and toolchain
run: |
git config --global --add safe.directory '*'
git clone -b "$PADAVAN_BRANCH" "$PADAVAN_REPO"
git -C padavan-ng checkout "$PADAVAN_COMMIT"
wget -qO- "$PADAVAN_TOOLCHAIN_URL" | tar -C padavan-ng --zstd -xf -
- name: Install themes
run: |
if [[ -n $PADAVAN_THEMES ]]; then
git clone --depth 1 -b "$PADAVAN_THEMES_BRANCH" "$PADAVAN_THEMES_REPO" themes
cp -r themes/common-theme themes/jquery.js padavan-ng/trunk/user/www/n56u_ribbon_fixed
for theme in $PADAVAN_THEMES; do
echo "Installing $theme theme"
cp -r "themes/$theme-theme" padavan-ng/trunk/user/www/n56u_ribbon_fixed
done
fi
- name: Run custom pre-build script
run: '[[ -f pre-build.sh ]] && . pre-build.sh || :'
- name: Build firmware
run: |
cp build.config padavan-ng/trunk/.config
pushd padavan-ng/trunk
./clear_tree.sh
./build_firmware.sh
popd
- name: Run custom post-build script
run: '[[ -f post-build.sh ]] && . post-build.sh || :'
- name: Prepare artifacts
run: |
FW_FILE_NAME="$(find padavan-ng/trunk/images -type f -regextype posix-extended -iregex ".*\.(trx|bin)$" \
-printf "%T@\t%f\n" | sort -V | tail -1 | cut -f2)"
cp "padavan-ng/trunk/images/$FW_FILE_NAME" .
# Create 128KB empty file and recovery firmware
dd if=/dev/zero of=128kempty.bin bs=128k count=1
cat 128kempty.bin "$FW_FILE_NAME" > tp_recovery.bin
# Download TFTP server
wget -O tftpd64.464.zip https://github.com/danayer/TP-Link-Archer-C5-V4-Padavan/releases/download/release-2025.04.22_01.20.13/tftpd64.464.zip
echo "FW_FILE_NAME=$FW_FILE_NAME" >> $GITHUB_ENV
echo "BUILD_TIMESTAMP=$(date '+%Y.%m.%d_%H.%M.%S')" >> $GITHUB_ENV
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: padavan-ng_${{ env.CONFIG_VENDOR }}_${{ env.CONFIG_FIRMWARE_PRODUCT_ID }}_${{ env.BUILD_TIMESTAMP }}
retention-days: 7
path: |
${{ env.FW_FILE_NAME }}
tp_recovery.bin
tftpd64.464.zip
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: release-${{ env.BUILD_TIMESTAMP }}
release_name: Padavan TP-Link Archer C5 V4 LITE (${{ env.BUILD_TIMESTAMP }})
body: |
## 💝 Поддержать разработку
Если вам нравится прошивка, вы можете поддержать разработку:
- [Купить кофе](https://pay.cloudtips.ru/p/afb55f71)
- [Поддержать на Boosty](https://boosty.to/danayer)
О прошивке
Данная прошивка является максимально чистой версией, созданной специально для обхода блокировок сайтов и комфортного пользования интернетом.
📋 Инструкция прошивки
🔰 Подготовка:
🛡️ Отключаем брандмауэр
🔌 Подключаем кабель в LAN порт
⚙️ Настраиваем IP: 192.168.0.66
💿 Распаковываем и запускаем Tftpd64
📁 Копируем tp_recovery.bin в папку TFTP
📝 Процесс прошивки:
🔌 Выключаем роутер
⚡ Зажимаем Reset + включаем питание
⏲️ Ждем 10-15 секунд
🔄 Отпускаем Reset
📊 Следим за процессом прошивки в окне Tftpd64
✅ Ждем завершения прошивки
⚠️ Важно: После прошивки верните автоматическое получение IP
🔄 Обновление прошивки
📥 Установка актуальной версии:
📱 Подключитесь к роутеру по кабелю LAN (не по Wi-Fi!)
🌐 Откройте веб-интерфейс http://192.168.1.1
⚙️ Перейдите в раздел Администрирование -> Обновление прошивки
📦 Скачайте последнюю версию прошивки с GitHub Releases
📤 Выберите скачанный файл .bin (не архив!)
✅ Нажмите "Обновить" и дождитесь перезагрузки (3-5 минут)
💡 Примечание: Первая прошивка через TFTP нужна только один раз. Все последующие обновления устанавливаются через веб-интерфейс.
draft: false
prerelease: false
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./${{ env.FW_FILE_NAME }}
asset_name: ${{ env.FW_FILE_NAME }}
asset_content_type: application/octet-stream
- name: Upload Recovery Firmware Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./tp_recovery.bin
asset_name: tp_recovery.bin
asset_content_type: application/octet-stream
- name: Upload TFTP Server Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./tftpd64.464.zip
asset_name: tftpd64.464.zip
asset_content_type: application/zip
- name: Check firmware size
run: |
partitions=padavan-ng/trunk/configs/boards/$CONFIG_VENDOR/$CONFIG_FIRMWARE_PRODUCT_ID/partitions.config
max_fw_size="$(awk '/Firmware/ { getline; getline; sub(",", ""); print strtonum($2); }' "$partitions")"
fw_size="$(stat -c %s "$FW_FILE_NAME")"
if ((fw_size > max_fw_size)); then
fw_size_fmtd="$(numfmt --grouping "$fw_size") bytes"
max_fw_size_fmtd="$(numfmt --grouping "$max_fw_size") bytes"
echo "Firmware size ($fw_size_fmtd) exceeds max size ($max_fw_size_fmtd) for your target device"
exit 1
fi