Use tempdir-spec on macos #456
Workflow file for this run
This file contains hidden or 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: build | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| paths: | |
| - requirements.txt | |
| - requirements.remote.txt | |
| - "*.py" | |
| - data/** | |
| - codexctl/** | |
| - scripts/** | |
| - github-make-executable.sh | |
| - Makefile | |
| - .github/workflows/main.yml | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - requirements.txt | |
| - requirements.remote.txt | |
| - "*.py" | |
| - data/** | |
| - codexctl/** | |
| - scripts/** | |
| - github-make-executable.sh | |
| - Makefile | |
| - .github/workflows/main.yml | |
| workflow_dispatch: | |
| defaults: | |
| run: | |
| shell: bash | |
| jobs: | |
| remote: | |
| name: Build for ${{ matrix.os }}${{ matrix.debug == 1 && ' (debug)' || '' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| - windows-latest | |
| - macos-latest | |
| - macos-15-intel | |
| debug: | |
| - 0 | |
| - 1 | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Install Apt packages | |
| if: matrix.os == 'ubuntu-latest' | |
| id: cache-apt | |
| uses: awalsh128/cache-apt-pkgs-action@latest | |
| with: | |
| execute_install_scripts: true | |
| packages: libfuse-dev upx-ucl | |
| version: 1.0 | |
| - name: Install windows packages | |
| if: matrix.os == 'windows-latest' | |
| run: | | |
| winget install -e \ | |
| --id UPX.UPX \ | |
| --disable-interactivity \ | |
| --accept-source-agreements \ | |
| --accept-package-agreements | |
| echo "$LOCALAPPDATA/Microsoft/WinGet/Links/" >> $GITHUB_PATH | |
| - name: Install brew packages | |
| if: matrix.os == 'macos-latest' || matrix.os == 'macos-15-intel' | |
| run: brew install coreutils upx | |
| - name: Checkout the Git repository | |
| uses: actions/checkout@v4 | |
| - name: ccache | |
| uses: hendrikmuhs/ccache-action@v1.2 | |
| with: | |
| key: ${{ github.job }}-${{ matrix.os }} | |
| - name: Move .ccache | |
| shell: bash | |
| run: | | |
| mkdir -p "$nuitka_cache" .ccache | |
| mv .ccache "$nuitka_cache/ccache" | |
| env: | |
| nuitka_cache: ${{ github.workspace }}/.nuitka | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| cache: "pip" | |
| cache-dependency-path: | | |
| **/requirements*.txt | |
| - name: Test codexctl | |
| shell: bash | |
| run: make test | |
| - name: Make script executable | |
| run: chmod +x ./scripts/github-make-executable.sh | |
| - name: Build codexctl | |
| shell: bash | |
| run: DEBUG_BUILD=${{ matrix.debug }} ./scripts/github-make-executable.sh | |
| env: | |
| nuitka_cache: ${{ github.workspace }}/.nuitka | |
| - name: Upload Compilation Report | |
| uses: actions/upload-artifact@v4 | |
| if: (success() || failure()) && runner.debug == '1' | |
| with: | |
| name: ${{ matrix.os }}${{ matrix.debug == 1 && '-debug' || '' }}-compilation-report | |
| path: compilation-report.xml | |
| if-no-files-found: warn | |
| - name: Move .ccache | |
| shell: bash | |
| run: | | |
| mv "$nuitka_cache/ccache" .ccache | |
| env: | |
| nuitka_cache: ${{ github.workspace }}/.nuitka | |
| - name: Upload executable | |
| if: matrix.os != 'windows-latest' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.os }}${{ matrix.debug == 1 && '-debug' || '' }} | |
| path: dist/codexctl | |
| if-no-files-found: error | |
| - name: Upload executable | |
| if: matrix.os == 'windows-latest' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.os }}${{ matrix.debug == 1 && '-debug' || '' }} | |
| path: dist/codexctl.exe | |
| if-no-files-found: error | |
| device: | |
| name: Build for remarkable${{ matrix.debug == 1 && ' (debug)' || '' }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| debug: | |
| - 0 | |
| - 1 | |
| steps: | |
| - name: Free up disk space | |
| shell: bash | |
| run: | | |
| sudo rm -vrf \ | |
| /usr/lib/jvm \ | |
| /usr/share/dotnet \ | |
| /usr/share/swift \ | |
| /usr/local/.ghcup \ | |
| /usr/local/julia* \ | |
| /usr/local/lib/android \ | |
| /usr/local/share/chromium \ | |
| /opt/microsoft /opt/google \ | |
| /opt/az \ | |
| /usr/local/share/powershell \ | |
| | wc -l | |
| - name: Checkout the codexctl repository | |
| uses: actions/checkout@v4 | |
| - name: Nuitka ccache | |
| uses: actions/cache@v3 | |
| with: | |
| path: ${{ github.workspace }}/.nuitka | |
| key: ${{ github.job }}-remarkable | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build executable | |
| shell: bash | |
| run: | | |
| docker run \ | |
| --rm \ | |
| --platform=linux/arm/v7 \ | |
| -v "${src_path}":/src \ | |
| eeems/nuitka-arm-builder:bullseye-3.11 \ | |
| bash -ec "$script" | |
| env: | |
| src_path: ${{ github.workspace }} | |
| script: | | |
| echo "[info] Installing build dependencies" | |
| apt update | |
| apt install -y \ | |
| libfuse-dev | |
| cd /src | |
| source /opt/lib/nuitka/bin/activate | |
| chmod +x ./scripts/github-make-executable.sh | |
| DEBUG_BUILD=${{ matrix.debug }} ./scripts/github-make-executable.sh | |
| - name: Upload Compilation Report | |
| uses: actions/upload-artifact@v4 | |
| if: runner.debug == '1' | |
| with: | |
| name: remarkable${{ matrix.debug == 1 && '-debug' || '' }}-compilation-report | |
| path: compilation-report.xml | |
| if-no-files-found: warn | |
| - name: Upload executable | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: remarkable${{ matrix.debug == 1 && '-debug' || '' }} | |
| path: dist/codexctl | |
| if-no-files-found: error | |
| test_device: | |
| name: Test for reMarkable ${{ matrix.fw_version }} | |
| needs: [device] | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| fw_version: | |
| - "2.15.1" | |
| - "3.3.2" | |
| # - '3.9.3' | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| path: artifacts | |
| name: remarkable | |
| - name: Free up space | |
| run: | | |
| export DEBIAN_FRONTEND="noninteractive" | |
| sudo apt-get autoremove -y | |
| sudo apt-get autoclean -y | |
| sudo rm -rf \ | |
| /usr/lib/jvm \ | |
| /usr/share/dotnet \ | |
| /usr/share/swift \ | |
| /usr/local/.ghcup \ | |
| /usr/local/julia* \ | |
| /usr/local/lib/android \ | |
| /usr/local/share/chromium \ | |
| /opt/microsoft /opt/google \ | |
| /opt/az \ | |
| /usr/local/share/powershell | |
| - uses: Eeems-Org/run-in-remarkable-action@v1 | |
| with: | |
| path: artifacts | |
| fw_version: ${{ matrix.fw_version }} | |
| run: | | |
| chmod +x ./codexctl | |
| ./codexctl download --hardware rm2 --out /tmp toltec | |
| release: | |
| name: Release | |
| needs: [remote, device, test_device] | |
| runs-on: ubuntu-latest | |
| if: github.ref == 'refs/heads/main' | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Set current date as env variable | |
| run: | | |
| echo "NAME=$(date +'%Y-%m-%d %H:%M')" >> $GITHUB_ENV | |
| echo "TAG=$(date +%s)" >> $GITHUB_ENV | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| path: artifacts | |
| - name: Rename artifacts | |
| run: | | |
| ls artifacts | while read artifact; do | |
| pushd artifacts/${artifact} | |
| zip -r ../${artifact}.zip . | |
| popd | |
| done | |
| - uses: ncipollo/release-action@v1 | |
| with: | |
| artifacts: "artifacts/*.zip" | |
| name: ${{ env.NAME }} | |
| tag: ${{ env.TAG }} | |
| commit: ${{ github.sha }} | |
| generateReleaseNotes: true | |
| makeLatest: true |