-
-
Notifications
You must be signed in to change notification settings - Fork 12
129 lines (108 loc) · 3.65 KB
/
release.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
name: Release furble
on:
push:
tags:
- 'v*'
env:
FURBLE_VERSION: ${{ github.ref_name }}+${{ github.run_attempt }}
jobs:
build:
strategy:
matrix:
platform:
- m5stick-c
- m5stick-c-plus
- m5stack-core
- m5stack-core2
runs-on: ubuntu-latest
permissions:
contents: write
env:
FIRMWARE_NAME: furble-${{ matrix.platform }}-${{ github.ref_name }}+${{ github.run_attempt }}.bin
BOOTLOADER_NAME: furble-bootloader-${{ matrix.platform }}-${{ github.ref_name }}+${{ github.run_attempt }}.bin
PARTITIONS_NAME: furble-partitions-${{ matrix.platform }}-${{ github.ref_name }}+${{ github.run_attempt }}.bin
BOOT_APP0_NAME: furble-boot-app0-${{ matrix.platform }}-${{ github.ref_name }}+${{ github.run_attempt }}.bin
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'pip'
- name: Install Dependencies
run: |
pip install -r requirements.txt
- name: Build furble (${{ matrix.platform }})
run: platformio run -e ${{ matrix.platform }}
- name: Rename binaries (${{ matrix.platform}})
run: |
mv .pio/build/${{ matrix.platform }}/firmware.bin $FIRMWARE_NAME
mv .pio/build/${{ matrix.platform }}/bootloader.bin $BOOTLOADER_NAME
mv .pio/build/${{ matrix.platform }}/partitions.bin $PARTITIONS_NAME
mv ~/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin $BOOT_APP0_NAME
- name: Generate manifest (${{ matrix.platform }})
working-directory: ./web-installer
env:
VERSION: ${{ env.FURBLE_VERSION }}
PLATFORM: ${{ matrix.platform }}
run: |
python generate-manifest.py > ../manifest_${{ matrix.platform }}.json
- name: Upload artifacts (${{ matrix.platform }})
uses: actions/upload-artifact@v4
with:
name: ${{ env.FIRMWARE_NAME }}
path: |
${{ env.FIRMWARE_NAME }}
${{ env.BOOTLOADER_NAME }}
${{ env.PARTITIONS_NAME }}
${{ env.BOOT_APP0_NAME }}
manifest_${{ matrix.platform }}.json
if-no-files-found: error
release:
needs: build
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true
- name: Generate release hashes
run: |
ls -lR
sha256sum furble-*.bin > sha256sum.txt
- name: Release
uses: softprops/action-gh-release@v1
with:
generate_release_notes: true
files: |
furble-*.bin
manifest_*.json
sha256sum.txt
deploy:
needs: build
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
name: Deploy to Cloudflare Pages
steps:
- uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true
- name: Assemble assets
run: |
mkdir -p deploy
cp web-installer/index.html deploy/index.html
mkdir -p deploy/firmware
mv manifest*.json deploy/firmware
mv furble-*.bin deploy/firmware
- name: Publish
uses: cloudflare/pages-action@1
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
projectName: furble-web-installer
directory: deploy
gitHubToken: ${{ secrets.GITHUB_TOKEN }}