From 3cdc62f4b681484b6589bf20e64853c02df428e7 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 | 58 +++++++++++++++++++++++ _projects/ia32-generic-qemu/build.project | 2 +- 3 files changed, 94 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 000000000..3c74de925 --- /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 + git rev-parse --short HEAD > ~/toolchain/git-version + cd phoenix-rtos-build/toolchain/ + ./build-toolchain.sh i386-pc-phoenix "$HOME"/toolchain/ + # upload/download-artifact action don't preserve permissions and compresses to zip. Pack to archive and don't compress. + tar -C ~/toolchain -cvf ~/i386-pc-phoenix-macos.tar i386-pc-phoenix git-version + + - name: Upload toolchain artifacts + uses: actions/upload-artifact@v3 + with: + name: i386-pc-phoenix-macos + path: ~/i386-pc-phoenix-macos.tar diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml new file mode 100644 index 000000000..3d1b91082 --- /dev/null +++ b/.github/workflows/nightly.yml @@ -0,0 +1,58 @@ +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 + strategy: + matrix: + target: [ia32-generic-qemu] + include: + - toolchain: i386-pc-phoenix + + 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: Download toolchain + # TODO: download from github packages/releases + uses: dawidd6/action-download-artifact@v2 + with: + workflow: build-toolchain.yml + + - name: Install toolchain + working-directory: ${{ matrix.toolchain }}-macos + run: | + tar -xvf ${{ matrix.toolchain }}-macos.tar + echo "$(pwd)"/${{ matrix.toolchain }}/bin >> $GITHUB_PATH + + - name: Build + run: ./phoenix-rtos-build/build.sh all tests + env: + TARGET: ${{ matrix.target }} + + - 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 0951ed66a..bcd9b09ce 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 () {