diff --git a/.github/workflows/build-arm64.yml b/.github/workflows/build-arm64.yml new file mode 100644 index 0000000..b4fb979 --- /dev/null +++ b/.github/workflows/build-arm64.yml @@ -0,0 +1,69 @@ +name: Build cr-boot for ARM64 (Google/Kukui) + +on: + push: + branches: ["main"] + pull_request: + branches: ["main"] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + container: + image: registry.fedoraproject.org/fedora-minimal:39 + + steps: + - name: Install dependencies + run: | + dnf5 update -y + dnf5 install -y git make gcc gcc-aarch64-linux-gnu ccache flex bison elfutils-devel parted vboot-utils golang xz bc tar + + - uses: actions/checkout@v3 + with: + submodules: true + + - name: Add Git safe directory + run: | + git config --global --add safe.directory $(pwd) + + - name: Setup enviroment variables + run: | + echo "PATH=$PATH:$HOME/go/bin" >> $GITHUB_ENV + echo "GOCACHE=$(go env GOCACHE)" >> $GITHUB_ENV + echo "CCACHE_DIR=$(pwd)/ccache" >> $GITHUB_ENV + echo "UROOT_COMMIT=$(git rev-parse HEAD:u-root)" >> $GITHUB_ENV + echo "KERNEL_COMMIT=$(git rev-parse HEAD:kernel)" >> $GITHUB_ENV + echo "ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-" >> $GITHUB_ENV + + - name: Setup Go cache + uses: actions/cache@v3 + with: + path: ${{ env.GOCACHE }} + key: go-${{ env.UROOT_COMMIT }} + restore-keys: | + go- + + - name: Setup ccache cache + uses: actions/cache@v3 + with: + path: ${{ env.CCACHE_DIR }} + key: ccache-${{ env.KERNEL_COMMIT }}-${{ hashFiles('kernel.config') }} + restore-keys: | + ccache-${{ env.KERNEL_COMMIT }}- + ccache- + + - name: Install u-root + run: go install github.com/u-root/u-root@$UROOT_COMMIT + + - name: Copy ARM64 kernel configuration + run: configs/kernel.mt8183 kernel/.config + + - name: Build cr-boot + run: make CC="ccache gcc" -j$(nproc) + + - name: Upload build artifacts + uses: actions/upload-artifact@v3 + with: + name: cr-boot + path: build diff --git a/.github/workflows/build.yml b/.github/workflows/build-x86.yml similarity index 90% rename from .github/workflows/build.yml rename to .github/workflows/build-x86.yml index 0871ade..57447db 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build-x86.yml @@ -1,4 +1,4 @@ -name: Build cr-boot +name: Build cr-boot for x86_64 platforms on: push: @@ -55,10 +55,10 @@ jobs: - name: Install u-root run: go install github.com/u-root/u-root@$UROOT_COMMIT - - name: Copy cr-boot kernel config - run: cp kernel.config kernel/.config + - name: Copy cr-boot kernel config for x86 + run: cp configs/kernel.x86 kernel/.config - - name: Build cr-boot + - name: Build cr-boot for x86_64 run: make CC="ccache gcc" -j$(nproc) - name: Upload build artifacts