-
Notifications
You must be signed in to change notification settings - Fork 21
150 lines (149 loc) · 4.9 KB
/
build.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
150
name: Build oxide
on:
push:
branches:
- master
paths:
- '.github/workflows/build.yml'
- 'applications/**'
- 'shared/**'
- 'assets/**'
- 'interfaces/**'
- 'qmake/**'
- 'oxide.pro'
- 'Makefile'
- 'package'
pull_request:
paths:
- '.github/workflows/build.yml'
- 'applications/**'
- 'shared/**'
- 'assets/**'
- 'interfaces/**'
- 'qmake/**'
- 'oxide.pro'
- 'Makefile'
- 'package'
jobs:
lint:
name: Lint source
runs-on: ubuntu-latest
steps:
- name: Cache shfmt
uses: actions/cache@v4
with:
path: /usr/local/bin/shfmt
key: 43439b996942b53dfafa9b6ff084f394555d049c98fb7ec37978f7668b43e1be
- name: Install shfmt
shell: bash
run: |
install_dir=/usr/local/bin
if ! [[ -f "$install_dir"/shfmt ]]; then
shfmt_version=v3.2.1
shfmt_checksum=43439b996942b53dfafa9b6ff084f394555d049c98fb7ec37978f7668b43e1be
sudo curl --location --silent --fail --tlsv1.2 --proto '=https' \
--output "$install_dir"/shfmt \
https://github.com/mvdan/sh/releases/download/"$shfmt_version"/shfmt_"$shfmt_version"_linux_amd64
sha256sum -c <(echo "$shfmt_checksum $install_dir/shfmt") > /dev/null 2>&1
sudo chmod a+x "$install_dir"/shfmt
fi
- uses: actions/checkout@v4
- name: Lint
run: make lint
build:
name: Build and package
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install toltecmk
run: pip install toltecmk requests==2.26.0
- name: Build packages
run: make package
timeout-minutes: 15
- name: Save packages
uses: actions/upload-artifact@v4
with:
name: packages
path: release
- name: Save packages
uses: actions/upload-artifact@v4
with:
name: build
path: .build/package/build/rmall/src/release
- name: Save repo
uses: actions/upload-artifact@v4
with:
name: repo
path: .build/package/dist/rmall
test:
name: Test packages
runs-on: ubuntu-latest
needs: [build]
steps:
- uses: actions/download-artifact@v4
id: download
with:
name: repo
- uses: Eeems-Org/run-in-remarkable-action@v1
with:
setup: |
set -ex
wget https://github.com/Eeems-Org/sysfs_preload/releases/download/1.0.0/packages.zip -O /tmp/packages.zip
unzip /tmp/packages.zip -d /tmp
opkg install /tmp/rmall/sysfs_preload_1.0.0-1_rmall.ipk
wget https://github.com/timower/rM2-stuff/releases/download/v0.1.2/rm2display.ipk -O /tmp/rm2display.ipk
opkg install /tmp/rm2display.ipk
echo "src/gz local-rmall file:///opt/tmp/src" > /opt/etc/opkg.conf.d/16-local.conf
run: |
set -ex
echo Y | toltecctl generate-opkg-conf
opkg update
opkg install oxide
# systemctl disable --now xochitl
# systemctl enable --now tarnish
# TODO install and run tests
opkg remove --force-removal-of-dependent-packages liboxide
path: ${{ steps.download.outputs.download-path }}
release:
needs: [build,test,lint]
if: ${{ github.ref == 'refs/heads/master' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/download-artifact@v4
with:
name: build
path: .build
- name: Create Sentry release
uses: getsentry/action-release@v1
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
SENTRY_URL: https://sentry.eeems.codes
- name: Setup Sentry CLI
run: curl -sL https://sentry.io/get-cli/ | bash
- name: Upload debug artifacts
if: ${{ !runner.debug }}
run: sentry-cli debug-files upload --include-sources .
env:
SENTRY_LOG_LEVEL: info
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
SENTRY_URL: https://sentry.eeems.codes
- name: Upload debug artifacts (debug)
if: ${{ runner.debug }}
run: sentry-cli debug-files upload --include-sources .
env:
SENTRY_LOG_LEVEL: debug
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
SENTRY_URL: https://sentry.eeems.codes