From 7727b8ad26ad21a48cfecd9176e5b75cc4ff2b6f Mon Sep 17 00:00:00 2001 From: Dien-Nhung Nguyen-Phu Date: Thu, 13 Jun 2024 10:10:57 +0700 Subject: [PATCH] chore: add build pipeline --- .github/workflows/build.yaml | 58 ++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/workflows/build.yaml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..ffd2ef1 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,58 @@ +name: Badgemagic Firmware build + +on: + push: + pull_request: + branches: [master] + +env: + MRS_TOOLCHAIN: MRS_Toolchain_Linux_x64_V1.91 + BUILD_DIR: build + BIN_TYPES: '{.bin,.elf}' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Cache toolchain + id: cache-toolchain + uses: actions/cache@v4 + with: + path: ${{ env.MRS_TOOLCHAIN }} + key: ${{ env.MRS_TOOLCHAIN }}-cache + + - name: Download toolchain + if: steps.cache-toolchain.outputs.cache-hit != 'true' + run: | + wget http://file-oss.mounriver.com/tools/${{ env.MRS_TOOLCHAIN }}.tar.xz + tar -xvf ${{ env.MRS_TOOLCHAIN }}.tar.xz + + - name: Build firmware + run: | + export PREFIX=${{ env.MRS_TOOLCHAIN }}/RISC-V_Embedded_GCC/bin/riscv-none-embed- + make + + - uses: actions/upload-artifact@v4 + with: + name: badgemagic-firmware + path: ${{ env.BUILD_DIR }}/badgemagic-* + + - name: Upload firmware binaries to bin branch + # Skip upload APK for pull requests & only allow binaries build from master + if: ${{ github.event_name != 'pull_request' && github.ref_name == 'master' }} + run: | + git config --global user.name "${{ github.workflow }}" + git config --global user.email "gh-actions@${{ github.repository_owner }}" + + mv ${{ env.BUILD_DIR }}/badgemagic-*${{ env.BIN_TYPES }} ./ + + git checkout --orphan temporary + git reset + git add badgemagic-*${{ env.BIN_TYPES }} + git commit -am "[Auto] Update firmware binaries from ${{ github.ref_name }} ($(date +%Y-%m-%d.%H:%M:%S))" + git branch -D bin || true + git branch -m bin + git push --force origin bin +