|
@@ -0,0 +1,129 @@
|
|
|
+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 \
|
|
|
+ [email protected] \
|
|
|
+ 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"
|