Skip to content

Merge pull request #87 from Jayy001/Eeems-patch-1 #285

Merge pull request #87 from Jayy001/Eeems-patch-1

Merge pull request #87 from Jayy001/Eeems-patch-1 #285

Workflow file for this run

name: build
on:
pull_request:
branches:
- main
push:
branches:
- main
workflow_dispatch:
defaults:
run:
shell: bash
jobs:
remote:
name: Build for ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
- macos-latest
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
version: 1.0
- name: Install brew packages
if: matrix.os == 'macos-latest'
run: brew install coreutils
- 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.11'
cache: 'pip'
cache-dependency-path: |
**/requirements*.txt
- name: Test codexctl
shell: bash
run: make test
- name: Build codexctl
shell: bash
run: ./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 }}-compilation-report
path: compilation-report.xml
if-no-files-found: warn
- name: Test Built version
shell: bash
run: make test-executable
- 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 }}
path: dist/codexctl.bin
if-no-files-found: error
- name: Upload executable
if: matrix.os == 'windows-latest'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}
path: dist/codexctl.exe
if-no-files-found: error
device:
name: Build for remarkable
runs-on: ubuntu-latest
steps:
- 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
./github-make-executable.sh
- name: Upload Compilation Report
uses: actions/upload-artifact@v4
if: runner.debug == '1'
with:
name: ${{ matrix.os }}-compilation-report
path: compilation-report.xml
if-no-files-found: warn
- name: Upload executable
uses: actions/upload-artifact@v4
with:
name: remarkable
path: dist/codexctl.bin
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
- uses: Eeems-Org/run-in-remarkable-action@v1
with:
path: artifacts
fw_version: ${{ matrix.fw_version }}
run: |
chmod +x ./codexctl.bin
./codexctl.bin download --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