[stable-3.14] Add additional options to make cross-compiling client feasible with Mac Crafter #1674
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: macOS Build and Test | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened] | |
jobs: | |
build: | |
name: macOS Build and Test | |
runs-on: macos-14 | |
strategy: | |
matrix: | |
craft_options: [ | |
'--options nextcloud-client.buildFileProviderModule=False', | |
'--options nextcloud-client.buildFileProviderModule=True' | |
] | |
env: | |
CRAFT_TARGET: macos-clang-arm64 | |
CRAFT_MASTER_LOCATION: ${{ github.workspace }}/CraftMaster | |
CRAFT_MASTER_CONFIG: ${{ github.workspace }}/craftmaster.ini | |
CRAFT_BLUEPRINT_OPTIONS: ${{ matrix.craft_options }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- name: List Xcode installations | |
run: sudo ls -1 /Applications | grep "Xcode" | |
- name: Select Xcode 15.3 | |
run: sudo xcode-select -s /Applications/Xcode_15.3.app/Contents/Developer | |
- name: Restore cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/cache | |
key: macos-latest-${{ env.CRAFT_TARGET }} | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- name: Install Homebrew dependencies | |
run: | | |
brew install inkscape | |
- name: Download Craft | |
run: | | |
git clone -q --depth=1 https://invent.kde.org/packaging/craftmaster.git ${{ env.CRAFT_MASTER_LOCATION }} | |
- name: Add Nextcloud client blueprints | |
run: | | |
python "${{ env.CRAFT_MASTER_LOCATION }}/CraftMaster.py" --config "${{ env.CRAFT_MASTER_CONFIG }}" --target ${{ env.CRAFT_TARGET }} -c --add-blueprint-repository https://github.com/nextcloud/desktop-client-blueprints.git | |
- name: Setup Craft | |
run: | | |
python "${{ env.CRAFT_MASTER_LOCATION }}/CraftMaster.py" --config "${{ env.CRAFT_MASTER_CONFIG }}" --target ${{ env.CRAFT_TARGET }} -c craft | |
- name: Install Craft Nextcloud client dependencies | |
run: | | |
python "${{ env.CRAFT_MASTER_LOCATION }}/CraftMaster.py" --config "${{ env.CRAFT_MASTER_CONFIG }}" --target ${{ env.CRAFT_TARGET }} -c --install-deps nextcloud-client | |
- name: Build client | |
run: | | |
python "${{ env.CRAFT_MASTER_LOCATION }}/CraftMaster.py" --config "${{ env.CRAFT_MASTER_CONFIG }}" --target ${{ env.CRAFT_TARGET }} -c --src-dir ${{ github.workspace }} ${{ env.CRAFT_BLUEPRINT_OPTIONS }} nextcloud-client | |
- name: Run tests | |
run: | | |
cd ${{ github.workspace }}/${{ env.CRAFT_TARGET }}/build/nextcloud-client/work/build | |
ctest --output-on-failure --output-junit testResult.xml | |