Skip to content

Commit

Permalink
CI: use buildbot container for building
Browse files Browse the repository at this point in the history
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 <[email protected]>
Co-Developed-by: Christian Marangi <[email protected]>
Signed-off-by: Christian Marangi <[email protected]>
  • Loading branch information
aparcar authored and Ansuel committed Sep 30, 2022
1 parent e937663 commit 3b23227
Showing 1 changed file with 50 additions and 67 deletions.
117 changes: 50 additions & 67 deletions .github/workflows/tools.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,25 @@ permissions:
contents: read

jobs:
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:
fetch-depth: 0
path: openwrt

- name: Setup MacOS
if: ${{ matrix.os == 'macos-latest' }}
run: |
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/
cd "$WORKPATH"
- name: Install required prereq on MacOS
working-directory: ${{ env.WORKPATH }}/openwrt
run: |
brew install \
autoconf \
automake \
Expand Down Expand Up @@ -74,74 +68,63 @@ jobs:
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
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
- name: Upload config
if: always()
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
run: |
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: ${{ matrix.os }}-logs
path: "logs"
name: linux-buildbot-logs
path: openwrt/logs

- name: Upload config
if: always()
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.os }}-config
path: "config"
name: linux-buildbot-config
path: openwrt/.config

0 comments on commit 3b23227

Please sign in to comment.