Skip to content

build 24.10.1 images #19

build 24.10.1 images

build 24.10.1 images #19

# This is a basic workflow to help you get started with Actions
name: Weimarnetz Firmware Assembly
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
workflow_dispatch:
repository_dispatch:
types: [package_update]
push:
branches: [ main ]
paths:
- 'assemble/**'
pull_request:
branches: [ main ]
paths:
- 'assemble/**'
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
assemble:
strategy:
matrix:
target: [ath79_generic, mediatek_filogic, mpc85xx_p1010, ramips_mt7620, ramips_mt7621, ramips_mt76x8, x86_generic, x86_64, ipq40xx_generic]
openwrt: [22.03.7, 23.05.5, 24.10.1]
exclude:
- target: x86_64
openwrt: 22.03.7
- target: mpc85xx_p1010
openwrt: 22.03.7
- target: mediatek_filogic
openwrt: 22.03.7
- target: mediatek_filogic
openwrt: 23.05.5
fail-fast: false
# The type of runner that the job will run on
runs-on: ubuntu-24.04
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- run: |
git fetch --prune --unshallow
- name: Show build info
run: |
echo "Building based on packages from:"
echo "Branch: ${{ github.event.client_payload.branch }}"
echo "Version: ${{ github.event.client_payload.version }}"
- name: Initialization environment
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo rm -rf /etc/apt/sources.list.d/* /usr/share/dotnet /usr/local/lib/android /opt/ghc
sudo -E add-apt-repository -y universe
# TODO: default apt config doesn't load repositories. Check later if that's still a problem
sudo tee /etc/apt/sources.list <<EOF
deb http://archive.ubuntu.com/ubuntu noble main universe restricted multiverse
deb http://archive.ubuntu.com/ubuntu noble-updates main universe restricted multiverse
deb http://archive.ubuntu.com/ubuntu noble-security main universe restricted multiverse
EOF
sudo -E apt-get -qq update
sudo -E apt-get -qq install build-essential clang flex bison g++ gawk gcc-multilib g++-multilib gettext git libncurses5-dev libssl-dev python3-setuptools rsync swig unzip zlib1g-dev file wget
sudo -E apt-get -qq autoremove --purge
sudo -E apt-get -qq clean
# Build firmware for ar71xx target
- name: Assemble OpenWrt ${{ matrix.openwrt }} for target ${{ matrix.target }}
run: |
cd assemble
./configure_imagebuilder.sh -t ${{ matrix.target }} -o ${{ matrix.openwrt }}
./assemble_firmware.sh -t ${{ matrix.target }} -i "ib/" -u weimarnetz -o ${{ matrix.openwrt }} -e "EMBEDDED_FILES/"
- name: upload
if: github.event_name == 'push' || github.event_name == 'repository_dispatch'
env:
SSH_KEY: ${{ secrets.BUILDBOT_PRIVATE_KEY }}
run: |
eval "$(ssh-agent -s)"
ssh-add - <<< "${SSH_KEY}"
cd assemble
if [ -d "firmwares/" ]; then
rsync -avz '-e ssh -o StrictHostKeyChecking=no -p22223' firmwares/ [email protected]:/brauhaus
fi