diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..01b2d78 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,96 @@ +name: Build + +on: + push: + branches: ci* + tags: '*' + +jobs: + create_release: + name: Create release + runs-on: ubuntu-latest + outputs: + upload_url: ${{ steps.create_release.outputs.upload_url }} + steps: + - name: Generate release name + id: release_name + run: echo "::set-output name=name::`date "+%Y-%m-%d-%H%M%S"`" + - name: Create release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ steps.release_name.outputs.name }} + release_name: ${{ steps.release_name.outputs.name }} + body: | + Build ${{ steps.release_name.outputs.name }} + draft: false + prerelease: true + + build: + runs-on: ubuntu-20.04 + needs: [create_release] + strategy: + matrix: + include: + - model: sh1 + nk: edsa1exe.bin + - model: sh2 + nk: edsa2exe.bin + - model: sh3 + nk: edsa3exe.bin + - model: sh4 + nk: edsh4exe.bin + - model: sh5 + nk: edsh5exe.bin + - model: sh6 + nk: edsh6exe.bin + + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Workaround for apt update failure + run: sudo rm /etc/apt/sources.list.d/github_git-lfs.* + - name: Install deps + run: sudo apt update && sudo apt install build-essential bison flex libncurses5-dev gcc-arm-linux-gnueabi qemu-user-static debootstrap + - name: Build nkbin-maker + run: make nkbin-maker + - name: Configure for U-Boot + run: make udefconfig-${{ matrix.model }} + - name: Build U-Boot + run: make ubuild + - name: Generate NK.bin + run: make nk.bin + - name: Configure for Linux + run: make ldefconfig + - name: Build Linux + run: make lbuild + + # - name: Build Debian Root # Wait for buildroot + # run: | + # ./tools/aptcache_linux_amd64 \ + # -rule 'local=localhost:65432, remote=ftp.us.debian.org' \ + # -rule 'local=localhost:65433, remote=security.debian.org' & + # make debian + + - name: Setup releases + id: release_name + run: | + mkdir release + cp ./u-boot-brain/u-boot.bin release/u-boot.bin + cp ./u-boot-brain/u-boot.sb release/u-boot.sb + cp ./nk.bin release/${{ matrix.nk }} + cp ./linux-brain/arch/arm/boot/dts/imx28-pw${{ matrix.model }}.dtb release/imx28-pw${{ matrix.model }}.dtb + cp ./linux-brain/arch/arm/boot/zImage release/zImage + zip -r release.zip release/ + - name: Upload release.zip + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create_release.outputs.upload_url }} + asset_path: release.zip + asset_name: ${{ matrix.model }}-boot.zip + asset_content_type: application/zip diff --git a/Makefile b/Makefile index aea0405..a63567f 100644 --- a/Makefile +++ b/Makefile @@ -85,7 +85,7 @@ debian: echo "Debootstrap is only available in Linux!"; \ exit 1; \ fi - mkdir debian + mkdir -p debian sudo debootstrap --arch=armel --foreign buster debian/ http://localhost:65432/debian/ sudo cp /usr/bin/qemu-arm-static debian/usr/bin/ sudo cp ./tools/setup_debian.sh debian/