From 124219cdbb010506e230cded13309ac5169b08a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Sarzy=C5=84ski?= Date: Thu, 9 Feb 2023 16:16:42 +0100 Subject: [PATCH] ci: add build toolchain and project on mac Add toolchain build workflow to build toolchain on macos host. It is triggered by workflow dispatch event. Add nightly build every 24 hours at 2 AM UTC+1 of ia32-generic-qemu target on macos host. Disable Azure SDK port on ia32-generic-qemu target due to compile errors. JIRA: CI-158 --- .github/workflows/build-toolchain.yml | 35 ++++++++++++++ .github/workflows/nightly.yml | 59 +++++++++++++++++++++++ _projects/ia32-generic-qemu/build.project | 2 +- 3 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/build-toolchain.yml create mode 100644 .github/workflows/nightly.yml diff --git a/.github/workflows/build-toolchain.yml b/.github/workflows/build-toolchain.yml new file mode 100644 index 00000000..aa4aef02 --- /dev/null +++ b/.github/workflows/build-toolchain.yml @@ -0,0 +1,35 @@ +name: Build toolchain + +on: + workflow_dispatch: + +jobs: + build-macos: + name: build-macos-toolchain + runs-on: macos-12 + steps: + - name: Checkout the repository + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install denependecies + run: | + brew install bash coreutils autoconf automake genext2fs make wget gnu-sed + echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH + echo "$(brew --prefix gnu-sed)/libexec/gnubin" >> $GITHUB_PATH + + - name: Build toolchain + run: | + mkdir ~/toolchain-macos-i386 + git rev-parse --short HEAD > ~/toolchain-macos-i386/git-version + cd phoenix-rtos-build/toolchain/ + ./build-toolchain.sh i386-pc-phoenix $HOME/toolchain-macos-i386/ + rm -rf ~/toolchain-macos-i386/*.patch ~/toolchain-macos-i386/binutils-* ~/toolchain-macos-i386/gcc-* + tar -C $HOME -cvf ~/toolchain-macos-i386.tar toolchain-macos-i386 + + - name: Upload toolchain artifacts + uses: actions/upload-artifact@v3 + with: + name: toolchain-macos-i386 + path: ~/toolchain-macos-i386.tar diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml new file mode 100644 index 00000000..f3ab0aa2 --- /dev/null +++ b/.github/workflows/nightly.yml @@ -0,0 +1,59 @@ +name: Nightly + +on: + schedule: + - cron: '0 1 * * *' # everyday at 02:00 UTC+1 + workflow_dispatch: + +jobs: + build-macos: + name: build-macos + runs-on: macos-12 + outputs: + build_result: ${{ steps.build.outcome }} + strategy: + matrix: + target: ['ia32-generic-qemu'] + include: + - target: 'ia32-generic-qemu' + syspage: 'psh pc-ata uart16550' + steps: + - name: Install denependecies + run: | + brew install bash coreutils autoconf automake genext2fs make wget gnu-sed + echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH + echo "$(brew --prefix gnu-sed)/libexec/gnubin" >> $GITHUB_PATH + + - name: Download toolchain + uses: dawidd6/action-download-artifact@v2 + with: + workflow: build-toolchain.yml + path: /Users/runner + + - name: Install toolchain + working-directory: /Users/runner/toolchain-macos-i386 + run: | + tar -xvf toolchain-macos-i386.tar + echo "$(pwd)/toolchain-macos-i386/i386-pc-phoenix/bin" >> $GITHUB_PATH + + - name: Checkout the repository + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Build + run: | + TARGET=ia32-generic-qemu ./phoenix-rtos-build/build.sh clean all tests + + - name: Tar rootfs + working-directory: _fs + run: tar -cvf ../rootfs-${{ matrix.target }}.tar ${{ matrix.target }}/root + + - name: Upload build artifacts + uses: actions/upload-artifact@v3 + with: + name: phoenix-rtos-${{ matrix.target }}-macos-host + path: | + _boot/${{ matrix.target }} + rootfs-${{ matrix.target }}.tar + diff --git a/_projects/ia32-generic-qemu/build.project b/_projects/ia32-generic-qemu/build.project index 0951ed66..bcd9b09c 100644 --- a/_projects/ia32-generic-qemu/build.project +++ b/_projects/ia32-generic-qemu/build.project @@ -13,7 +13,7 @@ # Ports configuration - additional to the one from _targets # export PORTS_MBEDTLS=y -export PORTS_AZURE_SDK=y +export PORTS_AZURE_SDK=n # FIXME compiling on mac doesn't work b_image_project () {