From 267ae6c777f3144ae78f5fe7226c7ddbf5a0cb08 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 +++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) 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..3c74de92 --- /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 00000000..3d1b9108 --- /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 +