name: CI on: push: schedule: - cron: '0 1 * * *' jobs: Windows: strategy: fail-fast: false matrix: config: - native_mixed - native_dyn - native_static runs-on: windows-latest env: OS_NAME: windows COMPILE_CONFIG: ${{matrix.config}} HOME: 'C:\\Users\\runneradmin' steps: - 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: | choco.exe install pkgconfiglite ninja - name: Install python modules shell: bash run: | pip3 install meson pytest requests distro paramiko pip3 install --no-deps $GITHUB_WORKSPACE - name: Setup MSVC compiler uses: bus1/cabuild/action/msdevshell@v1 with: architecture: x64 - name: secret shell: bash run: | echo "${{secrets.ssh_key}}" > $SSH_KEY env: SSH_KEY: ${{ runner.temp }}/id_rsa - name: Ensure base deps run: | python .github\\scripts\\ensure_base_deps.py env: SSH_KEY: ${{ runner.temp }}/id_rsa - name: Compile all deps run: | python .github\\scripts\\compile_all_deps.py env: SSH_KEY: ${{ runner.temp }}/id_rsa - name: Build projects run: | python .github\\scripts\\build_projects.py env: SSH_KEY: ${{ runner.temp }}/id_rsa - name: Upload failure logs if: failure() run: | python .github\\scripts\\upload_failure_logs.py env: SSH_KEY: ${{ runner.temp }}/id_rsa Linux: strategy: fail-fast: false matrix: config: - 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: - config: native_mixed image_variant: manylinux - config: aarch64_mixed image_variant: manylinux - config: win32_static image_variant: f35 - config: 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}}:2024-06-03" 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: Install paramiko if: ${{matrix.image_variant != 'bionic' }} shell: bash run: pip3 install --user paramiko - 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: COMPILE_CONFIG: ${{matrix.config}} - name: Compile all deps shell: bash run: | cd $HOME kiwix-build/.github/scripts/compile_all_deps.py env: COMPILE_CONFIG: ${{matrix.config}} - name: Build projects shell: bash run: | cd $HOME kiwix-build/.github/scripts/build_projects.py env: COMPILE_CONFIG: ${{matrix.config}} - name: Upload failure logs if: failure() run: $HOME/kiwix-build/.github/scripts/upload_failure_logs.py env: COMPILE_CONFIG: ${{matrix.config}} Flatpak: strategy: fail-fast: false env: HOME: /home/runner SSH_KEY: /tmp/id_rsa COMPILE_CONFIG: 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 paramiko 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.py Macos: strategy: fail-fast: false matrix: config: - 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 runs-on: macos-13 env: SSH_KEY: /tmp/id_rsa OS_NAME: macos 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@v4 - name: Setup Python 3.10 uses: actions/setup-python@v5 with: python-version: '3.10' - name: Install packages run: brew install pkg-config ninja automake autoconf - name: Install python modules run: | pip3 install meson pytest requests distro paramiko 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: COMPILE_CONFIG: ${{matrix.config}} - name: Compile all deps shell: bash run: | cd $HOME $GITHUB_WORKSPACE/.github/scripts/compile_all_deps.py env: COMPILE_CONFIG: ${{matrix.config}} - name: Build projects shell: bash run: | cd $HOME $GITHUB_WORKSPACE/.github/scripts/build_projects.py env: COMPILE_CONFIG: ${{matrix.config}} - name: Upload failure logs if: failure() run: $GITHUB_WORKSPACE/.github/scripts/upload_failure_logs.py env: COMPILE_CONFIG: ${{matrix.config}}