-
Notifications
You must be signed in to change notification settings - Fork 68
165 lines (142 loc) · 6.37 KB
/
autobuild1.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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
name: FujiNet PlatformIO CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
target-platform: [ATARI, ADAM, APPLE]
steps:
- uses: actions/checkout@v2
- name: Cache pip
uses: actions/cache@v2
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Cache PlatformIO
uses: actions/cache@v2
with:
path: ~/.platformio
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
- name: Set up Python
uses: actions/setup-python@v2
- name: Install PlatformIO
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
pip install Jinja2
pip install pyyaml
- name: Show python version
run: python --version
- name: Show pio system info
run: pio system info
- name: Show pio location
run: pip show platformio
- name: Create INI ATARI for Build
if: ${{ matrix.target-platform == 'ATARI' }}
run: cp .github/workflows/platformio.ini.${{ matrix.target-platform }} platformio.ini
- name: Create INI ADAM for Build
if: ${{ matrix.target-platform == 'ADAM' }}
run: cp .github/workflows/platformio.ini.${{ matrix.target-platform }} platformio.ini
- name: Create INI APPLE for Build
if: ${{ matrix.target-platform == 'APPLE' }}
run: cp .github/workflows/platformio.ini.${{ matrix.target-platform }} platformio.ini
- name: Show platformio.ini
run: cat platformio.ini
- name: Install espressif32 platform
run: pio pkg install -p "platformio/espressif32@3.4.0"
- name: Fix up dirent.h top
run: gawk -i inplace '1;/#include\ <stdint.h>/{print "\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n"}' /home/runner/.platformio/packages/framework-espidf/components/newlib/platform_include/sys/dirent.h
- name: Fix up dirent.h bottom
run: printf "\n\n\n#ifdef __cplusplus\n}\n#endif\n\n" >> /home/runner/.platformio/packages/framework-espidf/components/newlib/platform_include/sys/dirent.h
- name: Verify dirent.h bottom
run: tail -n 10 /home/runner/.platformio/packages/framework-espidf/components/newlib/platform_include/sys/dirent.h
- name: Verify dirent.h top
run: head -n 30 /home/runner/.platformio/packages/framework-espidf/components/newlib/platform_include/sys/dirent.h
- name: ATARI Build
if: ${{ matrix.target-platform == 'ATARI' }}
run: pio run -e fujinet-atari-v1
- name: ADAM Build
if: ${{ matrix.target-platform == 'ADAM' }}
run: pio run -e fujinet-adam-v1
- name: APPLE Build
if: ${{ matrix.target-platform == 'APPLE' }}
run: pio run -e fujiapple-rev0
- name: ATARI Build Filesystem
if: ${{ matrix.target-platform == 'ATARI' }}
run: pio run -t buildfs -e fujinet-atari-v1
- name: ADAM Build Filesystem
if: ${{ matrix.target-platform == 'ADAM' }}
run: pio run -t buildfs -e fujinet-adam-v1
- name: APPLE Build Filesystem
if: ${{ matrix.target-platform == 'APPLE' }}
run: pio run -t buildfs -e fujiapple-rev0
- name: Build Filesystem
run: pio run -t buildfs -e fujinet-v1
# - name: Show Build Artifacts
# run: ls -la .pio/build/fujinet-v1/*.bin
# boot_app0.bin is no longer used
# - name: Grab boot_app0.bin from github
# run: curl -o /home/runner/work/fujinet-platformio/fujinet-platformio/.pio/build/fujinet-v1/boot_app0.bin https://github.com/espressif/arduino-esp32/blob/1.0.6/tools/partitions/boot_app0.bin
# Disable artifacts for now. This will need to be different for each platform. Need to figure out how to do the JSON
# - name: Upload Build Artifacts
# uses: actions/upload-artifact@v2.3.1
# with:
# name: fujinet-${{ matrix.target-platform }}-${{ steps.version.outputs.version }}
# path: |
# .pio/build/fujinet-v1/release.json
# .pio/build/fujinet-v1/sha256sums
# .pio/build/fujinet-v1/bootloader.bin
# .pio/build/fujinet-v1/firmware.bin
# .pio/build/fujinet-v1/partitions.bin
# .pio/build/fujinet-v1/spiffs.bin
# - name: Get Release Zip
# uses: actions/download-artifact@v2
# with:
# name: fujinet-${{ matrix.target-platform }}-${{ steps.version.outputs.version }}
#
# - name: Show dir
# run: ls -la /home/runner/work/fujinet-platformio/fujinet-platformio
#
# - name: Get release shasum
# run: echo "::set-output name=shasum::$(sha256sum /home/runner/work/fujinet-platformio/fujinet-platformio/fujinet-${{ matrix.target-platform }}-${{ steps.version.outputs.version }}* | cut -d ' ' -f 1)"
# id: shasum
#
# - name: Create release.json
# run: sed "s/SHASUMHERE/${{ steps.shasum.outputs.shasum }}/" .pio/build/fujinet-v1/release.json.base > .pio/build/fujinet-v1/release.json
#
# - name: Upload release.json Artifact
# uses: actions/upload-artifact@v2.3.1
# with:
# name: release.json
# path: .pio/build/fujinet-v1/release.json.base
#
# - name: Get Git Short SHA
# id: shortsha
# run: echo "::set-output name=shortsha::$(git rev-parse --short HEAD)"
#
# - name: Create Release
# uses: actions/create-release@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# tag_name: ${{ steps.shortsha.outputs.shortsha }}
# release_name: ${{ steps.version.outputs.version }}
# body: "FujiNet build for ${{ matrix.target-platform }} - ${{ steps.version.outputs.version }}"
#
# - name: Create release ZIP
# uses: montudor/action-zip@v1
# with:
# args: zip -qq -j fujinet-${{ matrix.target-platform }}-${{ steps.version.outputs.version }}.zip .pio/build/fujinet-v1/release.json .pio/build/fujinet-v1/sha256sums .pio/build/fujinet-v1/bootloader.bin .pio/build/fujinet-v1/firmware.bin .pio/build/fujinet-v1/partitions.bin .pio/build/fujinet-v1/spiffs.bin .pio/build/fujinet-v1/boot_app0.bin
#
# - name: Push ZIP to release
# uses: softprops/action-gh-release@v1
# if: startsWith(${{ steps.shortsha.outputs.shortsha }}, 'refs/tags/')
# with:
# files: fujinet-${{ matrix.target-platform }}-${{ steps.version.outputs.version }}.zip
#
# - name: Notify FujiNet server
# run: sh -c 'echo "wget https://fujinet.online/?tag=${{ steps.version.outputs.version }}&platform=${{ matrix.target-platform }}"'
# end