Skip to content

Build binary for device #114

Build binary for device

Build binary for device #114

Workflow file for this run

name: build
on:
pull_request:
branches:
- main
push:
branches:
- main
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
- uses: actions/setup-python@v4
with:
python-version: '3.8'
cache: 'pip'
- name: Build codexctl
run: |
pip install wheel
pip install -r requirements.remote.txt
pip install nuitka
mkdir -p dist
python -m nuitka \
--enable-plugin=pylint-warnings \
--onefile \
--lto=yes \
--assume-yes-for-downloads \
--remove-output \
--output-dir=dist \
codexctl.py
- 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
services:
registry:
image: registry:2
ports:
- 5000:5000
steps:
- name: Checkout the Git repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build qemu-toltec
uses: docker/build-push-action@v5
with:
context: https://github.com/timower/rM-docker.git
target: qemu-toltec
tags: host.docker.internal:5000/rm-docker:qemu-toltec
add-host: |
host.docker.internal:host-gateway
push: true
cache-from: type=gha
cache-to: type=gha
build-args: |
fw_version: 2.15.1
- name: Build qemu-toltec-codexctl
uses: docker/build-push-action@v5
with:
context: .
build-contexts: |
rm-docker=docker-image://host.docker.internal:5000/rm-docker:qemu-toltec
tags: rm-docker:qemu-toltec-codexctl
add-host: |
host.docker.internal:host-gateway
cache-from: type=gha
cache-to: type=gha
- name: Build codexctl
run: |
docker run --rm -v ./codexctl:/src rm-docker:qemu-toltec-codexctl
- uses: actions/upload-artifact@v3
with:
name: remarkable
path: codexctl/dist
if-no-files-found: error
release:
name: Release
needs: [remote,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