Instead of using a fresh Linux installation which is setup every time
use the Buildbot container which is used for our own Buildbot
infrastructure, too.
While at it also tidy up the workflow to make it more consistent with
other workflow.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Co-Developed-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
- build:
- name: tools-${{ matrix.os }}
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: False
- matrix:
- os:
- - ubuntu-latest
- - macos-latest
+ build-macos-latest:
+ runs-on: macos-latest
+
steps:
- name: Checkout
uses: actions/checkout@v2
with:
steps:
- name: Checkout
uses: actions/checkout@v2
with:
path: openwrt
- name: Setup MacOS
path: openwrt
- name: Setup MacOS
- if: ${{ matrix.os == 'macos-latest' }}
- echo "WORKPATH=/Volumes/OpenWrt/openwrt/" >> "$GITHUB_ENV"
+ echo "WORKPATH=/Volumes/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/
hdiutil create -size 20g -type SPARSE -fs "Case-sensitive HFS+" -volname OpenWrt OpenWrt.sparseimage
hdiutil attach OpenWrt.sparseimage
mv "$GITHUB_WORKSPACE/openwrt" /Volumes/OpenWrt/
+ - name: Install required prereq on MacOS
+ working-directory: ${{ env.WORKPATH }}/openwrt
+ run: |
brew install \
autoconf \
automake \
brew install \
autoconf \
automake \
echo "/usr/local/opt/make/libexec/gnubin" >> "$GITHUB_PATH"
echo "/usr/local/opt/make/libexec/gnubin" >> "$GITHUB_PATH"
echo "/usr/sbin" >> "$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
- run: |
- cd "$WORKPATH"
- pwd
- make defconfig
+ working-directory: ${{ env.WORKPATH }}/openwrt
+ run: make defconfig
- - name: Build tools
- run: |
- cd "$WORKPATH"
- make tools/install -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh
+ - name: Build tools MacOS
+ working-directory: ${{ env.WORKPATH }}/openwrt
+ run: make tools/install -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh
+
+ - name: Upload logs
+ if: always()
+ uses: actions/upload-artifact@v2
+ with:
+ name: macos-latest-logs
+ path: ${{ env.WORKPATH }}/openwrt/logs
- - name: Move logs to GITHUB_WORKSPACE
+ uses: actions/upload-artifact@v2
+ with:
+ name: macos-latest-config
+ path: ${{ env.WORKPATH }}/openwrt/.config
+
+ build-linux-buildbot:
+ runs-on: ubuntu-latest
+ container: registry.gitlab.com/openwrt/buildbot/buildworker-3.4.1
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ path: 'openwrt'
+
+ - name: Fix permission
- cp -r "$WORKPATH/logs" "$GITHUB_WORKSPACE"
- cp -r "$WORKPATH/.config" "$GITHUB_WORKSPACE/config"
+ chown -R buildbot:buildbot openwrt
+
+ - name: Make prereq
+ shell: su buildbot -c "sh -e {0}"
+ working-directory: openwrt
+ run: make defconfig
+ - name: Build tools BuildBot Container
+ shell: su buildbot -c "sh -e {0}"
+ working-directory: openwrt
+ run: make tools/install -j$(nproc) BUILD_LOG=1 || ret=$? .github/workflows/scripts/show_build_failures.sh
- name: Upload logs
if: always()
uses: actions/upload-artifact@v2
with:
- name: Upload logs
if: always()
uses: actions/upload-artifact@v2
with:
- name: ${{ matrix.os }}-logs
- path: "logs"
+ name: linux-buildbot-logs
+ path: openwrt/logs
- name: Upload config
if: always()
uses: actions/upload-artifact@v2
with:
- name: Upload config
if: always()
uses: actions/upload-artifact@v2
with:
- name: ${{ matrix.os }}-config
- path: "config"
+ name: linux-buildbot-config
+ path: openwrt/.config