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:
parent
01000b0cec
commit
6f9067e9d4
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue