diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000000..b70490895ad1 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,170 @@ +name: build + +on: + push: + branches: [ "v2024.04-solidrun-a38x" ] + pull_request: + branches: [ "v2024.04-solidrun-a38x" ] + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + fetch_compile_publish: + runs-on: ubuntu-latest + timeout-minutes: 30 + container: + image: debian:bookworm-slim + env: + DEBIAN_FRONTEND: noninteractive + CROSS_COMPILE: arm-linux-gnueabihf- + outputs: + build_tag: ${{ steps.tag_step.outputs.build_tag }} + build_ver: ${{ steps.tag_step.outputs.build_ver }} + + steps: + - name: Install Dependencies + run: | + apt-get update + apt-get upgrade -y + apt-get install -y bc bison build-essential crossbuild-essential-armhf flex git libncurses-dev libssl-dev + + - name: Checkout pull-request + uses: actions/checkout@v4 + + - name: Get build tag + id: tag_step + run: | + build_tag=$(date +%Y-%m-%d)_$(echo ${{ github.sha }} | cut -c1-7) + echo "build_tag=$build_tag" >> "$GITHUB_OUTPUT" + echo "build_ver=v2024.04" >> "$GITHUB_OUTPUT" + + - name: Build Clearfog Pro SD + shell: bash + run: | + make clearfog_defconfig + make -j$(nproc) + install -v -m644 -D u-boot-with-spl.kwb deploy/u-boot-clearfog-pro-sd.kwb + + - name: Build Clearfog Pro eMMC data + shell: bash + run: | + make clearfog_defconfig + ./scripts/config --set-val SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET 0x1000 + make -j$(nproc) + install -v -m644 -D u-boot-with-spl.kwb deploy/u-boot-clearfog-pro-emmc.kwb + + - name: Build Clearfog Pro eMMC boot0 + shell: bash + run: | + make clearfog_defconfig + ./scripts/config --set-val SYS_MMC_ENV_PART 1 + make -j$(nproc) + install -v -m644 -D u-boot-with-spl.kwb deploy/u-boot-clearfog-pro-emmc-boot0.kwb + + - name: Build Clearfog Pro eMMC boot1 + shell: bash + run: | + make clearfog_defconfig + ./scripts/config --set-val SYS_MMC_ENV_PART 2 + make -j$(nproc) + install -v -m644 -D u-boot-with-spl.kwb deploy/u-boot-clearfog-pro-emmc-boot1.kwb + + - name: Build Clearfog Pro SATA + shell: bash + run: | + make clearfog_sata_defconfig + make -j$(nproc) + install -v -m644 -D u-boot-with-spl.kwb deploy/u-boot-clearfog-pro-sata.kwb + + - name: Build Clearfog Pro SPI + shell: bash + run: | + make clearfog_spi_defconfig + make -j$(nproc) + install -v -m644 -D u-boot-with-spl.kwb deploy/u-boot-clearfog-pro-spi.kwb + + - name: Build Clearfog Pro UART + shell: bash + run: | + make clearfog_defconfig + ./scripts/config --disable MVEBU_SPL_BOOT_DEVICE_MMC + ./scripts/config --disable ENV_IS_IN_MMC + ./scripts/config --disable SPL_MMC + ./scripts/config --enable MVEBU_SPL_BOOT_DEVICE_UART + ./scripts/config --enable ENV_IS_NOWHERE + make -j$(nproc) + install -v -m644 -D u-boot-with-spl.kwb deploy/u-boot-clearfog-pro-uart.kwb + + - name: Build Clearfog Base SD + shell: bash + run: | + make clearfog_defconfig + ./scripts/config --disable TARGET_CLEARFOG --enable TARGET_CLEARFOG_BASE + make -j$(nproc) + install -v -m644 -D u-boot-with-spl.kwb deploy/u-boot-clearfog-base-sd.kwb + + - name: Build Clearfog Base eMMC data + shell: bash + run: | + make clearfog_defconfig + ./scripts/config --disable TARGET_CLEARFOG --enable TARGET_CLEARFOG_BASE + ./scripts/config --set-val SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET 0x1000 + make -j$(nproc) + install -v -m644 -D u-boot-with-spl.kwb deploy/u-boot-clearfog-base-emmc.kwb + + - name: Build Clearfog Base eMMC boot0 + shell: bash + run: | + make clearfog_defconfig + ./scripts/config --disable TARGET_CLEARFOG --enable TARGET_CLEARFOG_BASE + ./scripts/config --set-val SYS_MMC_ENV_PART 1 + make -j$(nproc) + install -v -m644 -D u-boot-with-spl.kwb deploy/u-boot-clearfog-base-emmc-boot0.kwb + + - name: Build Clearfog Base eMMC boot1 + shell: bash + run: | + make clearfog_defconfig + ./scripts/config --disable TARGET_CLEARFOG --enable TARGET_CLEARFOG_BASE + ./scripts/config --set-val SYS_MMC_ENV_PART 2 + make -j$(nproc) + install -v -m644 -D u-boot-with-spl.kwb deploy/u-boot-clearfog-base-emmc-boot1.kwb + + - name: Build Clearfog Base SATA + shell: bash + run: | + make clearfog_sata_defconfig + ./scripts/config --disable TARGET_CLEARFOG --enable TARGET_CLEARFOG_BASE + make -j$(nproc) + install -v -m644 -D u-boot-with-spl.kwb deploy/u-boot-clearfog-base-sata.kwb + + - name: Build Clearfog Base SPI + shell: bash + run: | + make clearfog_spi_defconfig + ./scripts/config --disable TARGET_CLEARFOG --enable TARGET_CLEARFOG_BASE + make -j$(nproc) + install -v -m644 -D u-boot-with-spl.kwb deploy/u-boot-clearfog-base-spi.kwb + + - name: Build Clearfog Base UART + shell: bash + run: | + make clearfog_defconfig + ./scripts/config --disable TARGET_CLEARFOG --enable TARGET_CLEARFOG_BASE + ./scripts/config --disable MVEBU_SPL_BOOT_DEVICE_MMC + ./scripts/config --disable ENV_IS_IN_MMC + ./scripts/config --disable SPL_MMC + ./scripts/config --enable MVEBU_SPL_BOOT_DEVICE_UART + ./scripts/config --enable ENV_IS_NOWHERE + make -j$(nproc) + install -v -m644 -D u-boot-with-spl.kwb deploy/u-boot-clearfog-base-uart.kwb + + - name: Upload to S3 + uses: shallwefootball/upload-s3-action@v1.3.3 + with: + aws_key_id: ${{ secrets.IMAGES_S3_ACCESS }} + aws_secret_access_key: ${{ secrets.IMAGES_S3_SECRET }} + aws_bucket: ${{ secrets.IMAGES_S3_BUCKET }} + endpoint: ${{ secrets.IMAGES_S3_HOST }} + source_dir: deploy + destination_dir: A38X/U-Boot/${{ steps.tag_step.outputs.build_ver }}/${{ steps.tag_step.outputs.build_tag }}