diff --git a/.github/workflows/Build-Kernel.yaml b/.github/workflows/Build-Kernel.yaml new file mode 100644 index 0000000000..60ade3ae0a --- /dev/null +++ b/.github/workflows/Build-Kernel.yaml @@ -0,0 +1,86 @@ +name: Build-AvaotaOS-Kernel + +on: + workflow_call: + inputs: + config-board: + required: true + type: string + config-release_id: + required: true + type: string + config-kernel-target: + required: true + type: string + config-release_ver: + required: true + type: string + +permissions: + contents: write + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: checkout + uses: actions/checkout@v4 + + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@main + with: + tool-cache: true + android: true + dotnet: true + haskell: true + large-packages: true + docker-images: true + swap-storage: true + + - name: load apt cache + uses: awalsh128/cache-apt-pkgs-action@latest + with: + packages: | + build-essential gcc-aarch64-linux-gnu asciidoc binutils bzip2 gawk gettext git libncurses5-dev msmtp libssl-dev texinfo \ + libglib2.0-dev patch unzip zlib1g-dev subversion flex node-uglify git xmlto libreadline-dev python3 python3-pip \ + python3-pyelftools haveged lrzsz scons ecj fastjar re2c xz-utils tar binutils ccache curl wget vim nano rsync coreutils \ + qemu-utils upx-ucl libelf-dev autoconf automake libtool autopoint antlr3 gperf wget curl swig gcc g++ gcc-arm-none-eabi \ + cmake build-essential gcc-aarch64-linux-gnu mtools qemu-user-static bc pkg-config dialog debootstrap ubuntu-keyring \ + debian-keyring automake autoconf gcc make pixz libconfuse2 libconfuse-common libconfuse-dev binutils-aarch64-linux-gnu \ + binutils-arm-none-eabi cmake-data cpp-11-aarch64-linux-gnu cpp-aarch64-linux-gnu dh-elpa-helper gcc-11-aarch64-linux-gnu \ + gcc-11-aarch64-linux-gnu-base gcc-11-cross-base gcc-12-cross-base libasan6-arm64-cross libatomic1-arm64-cross \ + libc6-arm64-cross libc6-dev-arm64-cross libgcc-11-dev-arm64-cross libgcc-s1-arm64-cross libgomp1-arm64-cross libhwasan0-arm64-cross \ + libitm1-arm64-cross libjsoncpp25 liblsan0-arm64-cross libnewlib-arm-none-eabi libnewlib-dev librhash0 libstdc++-arm-none-eabi-dev \ + libstdc++-arm-none-eabi-newlib libstdc++6-arm64-cross libtsan0-arm64-cross libubsan1-arm64-cross linux-libc-dev-arm64-cross + version: 1.0 + execute_install_scripts: true + + - name: set package version + run: | + echo ${{ inputs.config-release_ver }} > VERSION + + - name: build kernel packages + shell: bash + run: | + sudo -E bash build_all.sh \ + -b ${{ inputs.config-board }} \ + -v jammy \ + -t cli \ + -u avaota \ + -p avaota \ + -s avaota \ + -k no \ + -g ${{ inputs.config-kernel-target }} \ + -i no \ + -o yes \ + -e no + + - name: upload to release + if: inputs.config-release_id != '' + uses: xresloader/upload-to-github-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + release_id: ${{ inputs.config-release_id }} + file: "./build_dir/${{ inputs.config-board }}-kernel-pkgs/*.deb" + draft: false