Merge pull request #70 from Eeems/patch-1 #229
This file contains 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 | |
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: 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.11' | |
cache: 'pip' | |
cache-dependency-path: | | |
**/requirements*.txt | |
- name: Test codexctl | |
if: matrix.os == 'ubuntu-latest' | |
shell: bash | |
run: make test | |
- name: Build codexctl | |
if: matrix.os == 'windows-latest' | |
shell: bash | |
run: ./github-make-executable.sh | |
env: | |
nuitka_cache: ${{ github.workspace }}/.nuitka | |
VENV_BIN_ACTIVATE: .venv/Scripts/activate | |
- name: Build codexctl | |
if: matrix.os != 'windows-latest' | |
shell: bash | |
run: ./github-make-executable.sh | |
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 | |
- 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 | |
- 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 | |
- 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@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 |