mirror of
				https://github.com/brain-hackers/buildbrain
				synced 2025-11-04 14:28:34 +09:00 
			
		
		
		
	
							
								
								
									
										96
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -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
 | 
			
		||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								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/
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user