--- /dev/null
+name: Build host tools
+
+on:
+ pull_request:
+ paths:
+ - 'tools/**'
+
+jobs:
+ build:
+ name: Build tools on ${{ matrix.os }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: False
+ matrix:
+ os:
+ - ubuntu-latest
+ - macos-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ path: openwrt
+
+ - name: Setup MacOS
+ if: ${{ matrix.os == 'macos-latest' }}
+ run: |
+ echo "WORKPATH=/Volumes/OpenWrt/openwrt/" >> "$GITHUB_ENV"
+ hdiutil create -size 20g -type SPARSE -fs "Case-sensitive HFS+" -volname OpenWrt OpenWrt.sparseimage
+ hdiutil attach OpenWrt.sparseimage
+ mv "$GITHUB_WORKSPACE/openwrt" /Volumes/OpenWrt/
+ cd "$WORKPATH"
+
+ brew install \
+ autoconf \
+ automake \
+ coreutils \
+ diffutils \
+ findutils \
+ gawk \
+ gettext \
+ git-extras \
+ gmp \
+ gnu-getopt \
+ gnu-sed \
+ gnu-tar \
+ grep \
+ libidn2 \
+ libunistring \
+ m4 \
+ make \
+ mpfr \
+ ncurses \
+ openssl@1.1 \
+ pcre \
+ pkg-config \
+ quilt \
+ readline \
+ wget \
+ zstd
+
+ echo "/bin" >> "$GITHUB_PATH"
+ echo "/sbin/Library/Apple/usr/bin" >> "$GITHUB_PATH"
+ echo "/usr/bin" >> "$GITHUB_PATH"
+ echo "/usr/local/bin" >> "$GITHUB_PATH"
+ echo "/usr/local/opt/coreutils/bin" >> "$GITHUB_PATH"
+ echo "/usr/local/opt/findutils/libexec/gnubin" >> "$GITHUB_PATH"
+ echo "/usr/local/opt/gettext/bin" >> "$GITHUB_PATH"
+ echo "/usr/local/opt/gnu-getopt/bin" >> "$GITHUB_PATH"
+ echo "/usr/local/opt/make/libexec/gnubin" >> "$GITHUB_PATH"
+ echo "/usr/local/opt/make/libexec/gnubin" >> "$GITHUB_PATH"
+ echo "/usr/sbin" >> "$GITHUB_PATH"
+ pwd
+
+ - name: Setup Ubuntu
+ if: ${{ matrix.os == 'ubuntu-latest' }}
+ env:
+ DEBIAN_FRONTEND: noninteractive
+ run: |
+ sudo apt-get update
+ sudo apt-get -y install \
+ build-essential \
+ ccache \
+ clang-12 \
+ ecj \
+ fastjar \
+ file \
+ g++ \
+ gawk \
+ gettext \
+ git \
+ java-propose-classpath \
+ libelf-dev \
+ libncurses-dev \
+ libssl-dev \
+ mkisofs \
+ python3 \
+ python3-dev \
+ python3-distutils \
+ python3-setuptools \
+ qemu-utils \
+ rsync \
+ subversion \
+ swig \
+ unzip \
+ wget \
+ xsltproc \
+ zlib1g-dev
+ echo "WORKPATH=$GITHUB_WORKSPACE/openwrt/" >> "$GITHUB_ENV"
+ cd "$WORKPATH"
+ pwd
+
+ - name: Make prereq
+ run: |
+ cd "$WORKPATH"
+ pwd
+ make defconfig
+
+ - name: Build tools
+ run: |
+ cd "$WORKPATH"
+ make tools/install -j$(nproc) BUILD_LOG=1
+
+ - name: Upload logs
+ if: failure()
+ uses: actions/upload-artifact@v2
+ with:
+ name: ${{ matrix.os }}-logs
+ path: "$WORKPATH/logs"