Skip to content

Use remarkable-nuitka-build action #200

Use remarkable-nuitka-build action

Use remarkable-nuitka-build action #200

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:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout the Git repository
uses: actions/checkout@v4
- name: ccache
uses: hendrikmuhs/[email protected]
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@v4
with:
python-version: '3.8'
cache: 'pip'
cache-dependency-path: |
**/requirements*.txt
- name: Install dependencies
shell: bash
run: |
pip install wheel
pip install -r requirements.remote.txt
pip install nuitka
- name: Build codexctl
shell: bash
run: |
mkdir -p dist
NUITKA_CACHE_DIR="$nuitka_cache" \
python -m nuitka \
--enable-plugin=pylint-warnings \
--onefile \
--lto=yes \
--assume-yes-for-downloads \
--remove-output \
--output-dir=dist \
codexctl.py 2>&1 \
| while read -r line; do
if [[ "$line" == 'Nuitka'*':ERROR:'* ]]; then
echo "::error file=${{ steps.args.outputs.main_file }},title=Nuitka Error::$line"
elif [[ "$line" == 'Nuitka'*':WARNING:'* ]]; then
echo "::warning file=${{ steps.args.outputs.main_file }},title=Nuitka Warning::$line"
elif [[ "$line" == 'Nuitka:INFO:'* ]]; then
echo "$line"
else
echo "::debug::$line"
fi
done
env:
nuitka_cache: ${{ github.workspace }}/.nuitka
- name: Move .ccache
shell: bash
run: |
mv "$nuitka_cache/ccache" .ccache
env:
nuitka_cache: ${{ github.workspace }}/.nuitka
- uses: actions/upload-artifact@v3
with:
name: ${{ matrix.os }}
path: dist
if-no-files-found: error
device:
name: Build for reMarkable
runs-on: ubuntu-latest
steps:
- name: Checkout the codexctl repository
uses: actions/checkout@v4
- uses: Eeems-Org/remarkable-nuitka-build-action@v2
with:
main: codexctl.py
python_version: '3.9'
- uses: actions/upload-artifact@v3
with:
name: remarkable
path: dist
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@v3
with:
path: artifacts
name: remarkable
if-no-files-found: error
- uses: Eeems-Org/run-in-remarkable-action@v1
with:
path: artifacts
fw_version: ${{ matrix.fw_version }}
run: |
chmod +x ./codexctl.bin
./codexctl.bin --help
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@v3
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