name: 🍎 MacOS on: push: pull_request: schedule: - cron: '0 0 * * 2' env: CARGO_TERM_COLOR: always jobs: macos: strategy: matrix: toolchain: [ stable ] type: [ release ] runs-on: macos-latest steps: - uses: actions/checkout@v4 - name: Install Homebrew run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - name: Install GTK4 run: | brew link --overwrite python@3.11 brew install rust gtk4 libheif || true brew link --overwrite python@3.11 - name: Setup rust version run: rustup default ${{ matrix.toolchain }} - name: Enable LTO run: sed -i '' 's/#lto = "fat"/lto = "fat"/g' Cargo.toml if: ${{ (matrix.type == 'release') }} - name: Build Release run: cargo build --release if: ${{ matrix.type == 'release'}} - name: Store MacOS CLI uses: actions/upload-artifact@v4 with: name: czkawka_cli-${{ runner.os }}-${{ matrix.toolchain }} path: target/release/czkawka_cli if: ${{ matrix.type == 'release' }} - name: Store MacOS GUI uses: actions/upload-artifact@v4 with: name: czkawka_gui-${{ runner.os }}-${{ matrix.toolchain }} path: target/release/czkawka_gui if: ${{ matrix.type == 'release' }} - name: Store MacOS Krokiet uses: actions/upload-artifact@v4 with: name: krokiet-${{ runner.os }}-${{ matrix.toolchain }} path: target/release/krokiet if: ${{ matrix.type == 'release' }} - name: Build Release Heif run: cargo build --release --features heif if: ${{ matrix.type == 'release'}} - name: Store MacOS CLI Heif uses: actions/upload-artifact@v4 with: name: czkawka_cli-${{ runner.os }}-${{ matrix.toolchain }}-heif path: target/release/czkawka_cli if: ${{ matrix.type == 'release' }} - name: Store MacOS GUI Heif uses: actions/upload-artifact@v4 with: name: czkawka_gui-${{ runner.os }}-${{ matrix.toolchain }}-heif path: target/release/czkawka_gui if: ${{ matrix.type == 'release' }} - name: Store MacOS Krokiet Heif uses: actions/upload-artifact@v4 with: name: krokiet-${{ runner.os }}-${{ matrix.toolchain }}-heif path: target/release/krokiet if: ${{ matrix.type == 'release' }}