-
Notifications
You must be signed in to change notification settings - Fork 15
149 lines (147 loc) · 4.21 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
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