name: CI on: push: schedule: - cron: '0 1 * * *' jobs: Linux: strategy: fail-fast: false matrix: target: - native_static - native_dyn - native_mixed - wasm - armv6_static - armv6_dyn - armv6_mixed - armv8_static - armv8_dyn - armv8_mixed - aarch64_static - aarch64_dyn - aarch64_mixed - aarch64_musl_static - aarch64_musl_dyn - aarch64_musl_mixed - x86-64_musl_static - x86-64_musl_mixed - i586_static - i586_dyn - android_arm - android_arm64 - android_x86 - android_x86_64 image_variant: ['focal'] include: - target: native_mixed image_variant: bionic - target: aarch64_mixed image_variant: bionic - target: win32_static image_variant: f35 - target: win32_dyn image_variant: f35 env: HOME: /home/runner SSH_KEY: /tmp/id_rsa runs-on: ubuntu-22.04 container: image: "ghcr.io/kiwix/kiwix-build_ci_${{matrix.image_variant}}:2023-10-30" options: "--device /dev/fuse --privileged" steps: - name: Checkout code shell: bash run: | cd $HOME git clone https://github.com/${REP} cd ./${REP##*/} git checkout --force ${GITHUB_SHA} pip3 install --user --no-deps . env: REP: ${{github.repository}} - name: secret shell: bash run: | echo "${{secrets.ssh_key}}" > $SSH_KEY chmod 600 $SSH_KEY - name: Ensure base deps shell: bash run: | cd $HOME kiwix-build/.github/scripts/ensure_base_deps.py env: PLATFORM_TARGET: ${{matrix.target}} - name: Compile all deps shell: bash run: | cd $HOME kiwix-build/.github/scripts/compile_all_deps.py env: PLATFORM_TARGET: ${{matrix.target}} - name: Build projects shell: bash run: | cd $HOME kiwix-build/.github/scripts/build_projects.py env: PLATFORM_TARGET: ${{matrix.target}} - name: Upload failure logs if: failure() run: $HOME/kiwix-build/.github/scripts/upload_failure_logs.sh env: PLATFORM_TARGET: ${{matrix.target}} Flatpak: strategy: fail-fast: false env: HOME: /home/runner SSH_KEY: /tmp/id_rsa PLATFORM_TARGET: flatpak OS_NAME: focal runs-on: ubuntu-22.04 steps: - name: Checkout code shell: bash run: | cd $HOME git clone https://github.com/${REP} cd ./${REP##*/} git checkout --force ${GITHUB_SHA} pip3 install --user --no-deps . env: REP: ${{github.repository}} - name: Install flatpak tools run: | sudo apt-get update sudo apt-get install flatpak-builder ninja-build meson - name: secret shell: bash run: | echo "${{secrets.ssh_key}}" > $SSH_KEY chmod 600 $SSH_KEY - name: Ensure base deps shell: bash run: | cd $HOME kiwix-build/.github/scripts/ensure_base_deps.py - name: Build projects shell: bash run: | cd $HOME kiwix-build/.github/scripts/build_projects.py - name: Upload failure logs if: failure() run: $HOME/kiwix-build/.github/scripts/upload_failure_logs.sh Macos: strategy: fail-fast: false matrix: target: - native_dyn - native_static - native_mixed - iOS_arm64 - iOSSimulator_x86_64 - iOSSimulator_arm64 - macOS_arm64_static - macOS_arm64_mixed - macOS_x86_64 - apple_all_static os: - macos-13 - macos-14 include: - os: macos-13 os_name: macos-x86_46 - os: macos-14 os_name: macos-arm64 runs-on: ${{matrix.os}} env: SSH_KEY: /tmp/id_rsa OS_NAME: ${{matrix.os_name}} steps: - name: Set Xcode version (15.0.1) # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md#xcode run: sudo xcode-select -s /Applications/Xcode_15.0.1.app - name: Checkout code uses: actions/checkout@v3 - name: Setup python 3.8 uses: actions/setup-python@v3 with: python-version: '3.8' - name: Install packages run: brew install pkg-config ninja automake autoconf - name: Install python modules run: | pip3 install meson pytest requests distro pip3 install --no-deps $GITHUB_WORKSPACE - name: secret shell: bash run: | echo "${{secrets.ssh_key}}" > $SSH_KEY chmod 600 $SSH_KEY - name: Ensure base deps shell: bash run: | cd $HOME $GITHUB_WORKSPACE/.github/scripts/ensure_base_deps.py env: PLATFORM_TARGET: ${{matrix.target}} - name: Compile all deps shell: bash run: | cd $HOME $GITHUB_WORKSPACE/.github/scripts/compile_all_deps.py env: PLATFORM_TARGET: ${{matrix.target}} - name: Build projects shell: bash run: | cd $HOME $GITHUB_WORKSPACE/.github/scripts/build_projects.py env: PLATFORM_TARGET: ${{matrix.target}} - name: Upload failure logs if: failure() run: $GITHUB_WORKSPACE/.github/scripts/upload_failure_logs.sh env: PLATFORM_TARGET: ${{matrix.target}}