Skip to content

Commit

Permalink
ci: add build toolchain and project on mac
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Jakub Sarzyński committed Mar 13, 2023
1 parent 23a4312 commit 267ae6c
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 0 deletions.
35 changes: 35 additions & 0 deletions .github/workflows/build-toolchain.yml
Original file line number Diff line number Diff line change
@@ -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
58 changes: 58 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 267ae6c

Please sign in to comment.