108 lines
2.9 KiB
YAML
108 lines
2.9 KiB
YAML
name: Build Packages
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
TZ: Europe/Madrid
|
|
PACKAGES: >-
|
|
luci-app-tailscale
|
|
uci-usb-gadget
|
|
luci-app-usb-gadget
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Initialization environment
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive
|
|
run: |
|
|
sudo rm -rf /etc/apt/sources.list.d/* /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL
|
|
sudo docker image prune --all --force
|
|
sudo -E apt-get -qq update
|
|
sudo -E ./devenv/dependencies.sh
|
|
sudo -E apt-get -qq autoremove --purge
|
|
sudo -E apt-get -qq clean
|
|
sudo timedatectl set-timezone "$TZ"
|
|
|
|
- name: Clone OpenWrt source code
|
|
run: |
|
|
git clone https://git.openwrt.org/openwrt/openwrt.git openwrt
|
|
git -C openwrt checkout 00ceb1ed1763f7479df6edf92ffada948f0e7d45
|
|
|
|
- name: Load msm89xx target and packages
|
|
run: |
|
|
git apply --unsafe-paths enable_wcn36xx_mac80211.patch
|
|
mv msm89xx openwrt/target/linux/msm89xx
|
|
mv packages openwrt/package/uz801
|
|
|
|
- name: Update and install feeds
|
|
run: |
|
|
cd openwrt
|
|
rm -rf tmp
|
|
./scripts/feeds update -a
|
|
./scripts/feeds install -a
|
|
|
|
- name: Configure for package build (APK)
|
|
run: |
|
|
cd openwrt
|
|
cp ../diffconfig_uz801 .config
|
|
make defconfig
|
|
make download -j8
|
|
find dl -size -1024c -exec rm -f {} \; || true
|
|
|
|
- name: Build toolchain and dependencies
|
|
run: |
|
|
cd openwrt
|
|
make tools/install -j$(nproc)
|
|
make toolchain/install -j$(nproc)
|
|
|
|
- name: Build APK packages
|
|
run: |
|
|
cd openwrt
|
|
for pkg in $PACKAGES; do
|
|
make package/${pkg}/compile -j$(nproc) V=s
|
|
done
|
|
echo "FILE_DATE=$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV
|
|
|
|
- name: Collect APK artifacts
|
|
run: |
|
|
mkdir -p artifacts/apk
|
|
for pkg in $PACKAGES; do
|
|
find openwrt/bin/packages -name "${pkg}*.apk" -exec cp {} artifacts/apk/ \;
|
|
done
|
|
|
|
- name: Reconfigure for IPK
|
|
run: |
|
|
cd openwrt
|
|
cp ../diffconfig_uz801 .config
|
|
echo "# CONFIG_USE_APK is not set" >> .config
|
|
make defconfig
|
|
for pkg in $PACKAGES; do
|
|
make package/${pkg}/{clean,compile} -j$(nproc) V=s
|
|
done
|
|
|
|
- name: Collect IPK artifacts
|
|
run: |
|
|
mkdir -p artifacts/ipk
|
|
for pkg in $PACKAGES; do
|
|
find openwrt/bin/packages -name "${pkg}*.ipk" -exec cp {} artifacts/ipk/ \;
|
|
done
|
|
|
|
- name: Upload APK packages
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: packages_apk_${{ env.FILE_DATE }}
|
|
path: artifacts/apk/
|
|
|
|
- name: Upload IPK packages
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: packages_ipk_${{ env.FILE_DATE }}
|
|
path: artifacts/ipk/
|