From b6d9656b3adb224b680e1e32d6460a9906ca1eaa Mon Sep 17 00:00:00 2001 From: Frank Wunderlich Date: Thu, 3 Aug 2023 21:20:12 +0200 Subject: [PATCH] ci: add github actions config --- .github/workflows/build.yml | 162 ++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000000..2ed99a692e8 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,162 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the action will run. +on: + # Triggers the workflow on push or pull request events but only for the master branch + push: + branches: + - '*-bpi' + - '*-ci' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # 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 + - name: Checkout + uses: actions/checkout@v3 + + - name: Install depencies + run: | + sudo apt update + sudo apt install ccache libssl-dev u-boot-tools gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu make python3-pyelftools + + - name: Setup env + run: | + echo "DT=$(date +'%Y-%m-%d_%H%M')" >> $GITHUB_ENV + echo "UBOOTVER=$(make ubootversion)" >> $GITHUB_ENV + echo "BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV + + - name: Print env + run: | + echo $BRANCH $UBOOTVER $DT + + - name: Setup cache + id: cache + uses: actions/cache@v3 + with: + path: ~/.ccache + key: ${{ runner.os }}-ccache + restore-keys: ${{ runner.os }}-ccache + + - name: Fetch mtk-atf branch for R64 + R3 + run: | + git fetch origin mtk-atf + + - name: Build for BananaPi-R2 + run: | + export PATH=/usr/lib/ccache:$PATH + bash build.sh importconfig + bash build.sh build + bash build.sh createimg + bash build.sh rename + + - name: Build for BananaPi-R64 + run: | + sed -i 's/#\(board=bpi-r64\)/\1/' build.conf #change board to r64 + bash build.sh importconfig + bash build.sh build + bash build.sh rename + git stash #stash build.conf + + git checkout mtk-atf + echo -e "board=bpi-r64\ndevice=sdmmc" > build.conf + bash build.sh build + bash build.sh rename + bash build.sh createimg non-interactive + rm build.conf + + git checkout ${{ env.BRANCH }} + git stash pop #restore build.conf + + - name: Build for BananaPi-R2Pro + run: | + sed -i 's/#\(board=bpi-r2pro\)/\1/' build.conf #change board to r2pro + bash build.sh importconfig + bash build.sh build + bash build.sh createimg + bash build.sh rename + + - name: Build for BananaPi-R3 + run: | + sed -i 's/#\(board=bpi-r3\)/\1/' build.conf #change board to r3 + bash build.sh importconfig + bash build.sh build + bash build.sh rename + git stash #stash build.conf + + git checkout mtk-atf + echo -e "board=bpi-r3\ndevice=sdmmc" > build.conf + bash build.sh build + bash build.sh rename + bash build.sh createimg non-interactive + rm build.conf + + git checkout ${{ env.BRANCH }} + git stash pop #restore build.conf + sed -i 's/#\(device=emmc\)/\1/' build.conf #change device + bash build.sh importconfig + bash build.sh build + bash build.sh rename + git stash #stash build.conf + + git checkout mtk-atf + echo -e "board=bpi-r3\ndevice=emmc" > build.conf + bash build.sh build + bash build.sh rename + rm build.conf + + git checkout ${{ env.BRANCH }} + git stash pop #restore build.conf + sed -i 's/#\(device=spi-nand\)/\1/' build.conf #change device + bash build.sh importconfig + bash build.sh build + bash build.sh rename + git stash #stash build.conf + + git checkout mtk-atf + echo -e "board=bpi-r3\ndevice=spim-nand" > build.conf + bash build.sh build + bash build.sh rename + rm build.conf + + git checkout ${{ env.BRANCH }} + git stash pop #restore build.conf + sed -i 's/#\(device=spi-nor\)/\1/' build.conf #change device + bash build.sh importconfig + bash build.sh build + bash build.sh rename + git stash #stash build.conf + + git checkout mtk-atf + echo -e "board=bpi-r3\ndevice=nor" > build.conf + bash build.sh build + bash build.sh rename + rm build.conf + + - name: Upload binaries to release + if: endsWith(github.ref,'-bpi') && contains(env.UBOOTVER,'-rc') == false + uses: marvinpinto/action-automatic-releases@latest + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + automatic_release_tag: "CI-BUILD-${{ env.BRANCH }}-${{ env.UBOOTVER }}-${{ env.DT }}" + prerelease: false + title: "Build for branch ${{ env.BRANCH }} (${{ env.UBOOTVER }})" + files: | + u-boot-r2*.bin + u-boot-r64*.bin + u-boot-r3*.bin + *_fip.bin + *_bl2.img + *.img.gz + u-boot-r2pro*.bin