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