CI: use buildbot container for building

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>
(cherry picked from commit 3b23227d43)
This commit is contained in:
Paul Spooren 2022-03-20 20:02:08 +00:00 committed by Josef Schlehofer
parent 01000b0cec
commit 6f9067e9d4
No known key found for this signature in database
GPG Key ID: B950216FE4329F4C
1 changed files with 54 additions and 71 deletions

View File

@ -10,31 +10,25 @@ permissions:
contents: read contents: read
jobs: jobs:
build: build-macos-latest:
name: tools-${{ matrix.os }} runs-on: macos-latest
runs-on: ${{ matrix.os }}
strategy:
fail-fast: False
matrix:
os:
- ubuntu-latest
- macos-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2
with: with:
fetch-depth: 0
path: openwrt path: openwrt
- name: Setup MacOS - name: Setup MacOS
if: ${{ matrix.os == 'macos-latest' }}
run: | 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 create -size 20g -type SPARSE -fs "Case-sensitive HFS+" -volname OpenWrt OpenWrt.sparseimage
hdiutil attach OpenWrt.sparseimage hdiutil attach OpenWrt.sparseimage
mv "$GITHUB_WORKSPACE/openwrt" /Volumes/OpenWrt/ mv "$GITHUB_WORKSPACE/openwrt" /Volumes/OpenWrt/
cd "$WORKPATH"
- name: Install required prereq on MacOS
working-directory: ${{ env.WORKPATH }}/openwrt
run: |
brew install \ brew install \
autoconf \ autoconf \
automake \ automake \
@ -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/local/opt/make/libexec/gnubin" >> "$GITHUB_PATH" echo "/usr/local/opt/make/libexec/gnubin" >> "$GITHUB_PATH"
echo "/usr/sbin" >> "$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 - name: Make prereq
run: | working-directory: ${{ env.WORKPATH }}/openwrt
cd "$WORKPATH" run: make defconfig
pwd
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: Move logs to GITHUB_WORKSPACE
if: always()
run: |
cp -r "$WORKPATH/logs" "$GITHUB_WORKSPACE"
cp -r "$WORKPATH/.config" "$GITHUB_WORKSPACE/config"
- 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 - name: Upload logs
if: always() if: always()
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: ${{ matrix.os }}-logs name: macos-latest-logs
path: "logs" path: ${{ env.WORKPATH }}/openwrt/logs
- name: Upload config - name: Upload config
if: always() if: always()
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: ${{ matrix.os }}-config name: macos-latest-config
path: "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: |
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: linux-buildbot-logs
path: openwrt/logs
- name: Upload config
if: always()
uses: actions/upload-artifact@v2
with:
name: linux-buildbot-config
path: openwrt/.config