-
Notifications
You must be signed in to change notification settings - Fork 0
124 lines (124 loc) · 5.46 KB
/
Copy pathbuild-release.yml
File metadata and controls
124 lines (124 loc) · 5.46 KB
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
name: Build with ESP-IDF and create Release
on:
push:
tags:
- 'v*.*.*'
jobs:
build:
runs-on: self-hosted
strategy:
max-parallel: 3
matrix:
PROTOCOL:
- ESP_NOW
- WIFI
# - BT # NOT YET IMPLEMENTED
SLEEP_MODE:
- NO_SLEEP
- DEEP_SLEEP
EXAMPLE_POWER_SAVE_MODE:
- EXAMPLE_POWER_SAVE_NONE
- EXAMPLE_POWER_SAVE_MIN_MODEM
- EXAMPLE_POWER_SAVE_MAX_MODEM
include:
- SLEEP_MODE: DEEP_SLEEP
SLEEP_TIME: 10
permissions: write-all
steps:
- name: Change Owner of Container Working Directory
run: sudo chown -R 1000:1001 .
- name: Checkout repo
uses: actions/checkout@v2
with:
submodules: 'true'
- name: get SHA
id: vars
run: echo "SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: get Tag
run: echo "TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Copy Default sdkconfig file and remove matrix configurations
run: |
cp ./sender/sdkconfig.default ./sender/sdkconfig
sed -i '/CONFIG_NO_SLEEP=y/d' ./sender/sdkconfig
sed -i '/CONFIG_ESP_NOW=y/d' ./sender/sdkconfig
sed -i '/CONFIG_EXAMPLE_POWER_SAVE_NONE=y/d' ./sender/sdkconfig
sed -i '/CONFIG_ESP_LOGGER_VERSION="not set"/d' ./sender/sdkconfig
cp ./receiver/sdkconfig.default ./receiver/sdkconfig
sed -i '/CONFIG_ESP_LOGGER_VERSION="not set"/d' ./receiver/sdkconfig
- name: Configure sdkconfig for different options
run: |
echo "CONFIG_${{ matrix.PROTOCOL }}=y" >> ./sender/sdkconfig
echo "CONFIG_${{ matrix.SLEEP_MODE }}=y" >> ./sender/sdkconfig
echo "CONFIG_${{ matrix.EXAMPLE_POWER_SAVE_MODE }}=y" >> ./sender/sdkconfig
${{ matrix.SLEEP_TIME && format('echo "CONFIG_SLEEP_TIME={0}" >> ./sender/sdkconfig', matrix.SLEEP_TIME) }}
echo 'CONFIG_ESP_LOGGER_VERSION="${{ env.TAG }}-${{ env.SHA }}-${{ matrix.PROTOCOL }}-${{ matrix.SLEEP_MODE }}-${{ matrix.EXAMPLE_POWER_SAVE_MODE }}"' >> ./sender/sdkconfig
echo 'CONFIG_ESP_LOGGER_VERSION="${{ env.TAG }}-${{ env.SHA }}"' >> ./receiver/sdkconfig
- name: esp-idf build sender
uses: espressif/esp-idf-ci-action@v1
with:
esp_idf_version: v5.1.2
target: esp32c6
path: './sender/'
- name: esp-idf build receiver
if: ${{ matrix.PROTOCOL =='ESP_NOW' && matrix.SLEEP_MODE =='NO_SLEEP' && matrix.EXAMPLE_POWER_SAVE_MODE == 'EXAMPLE_POWER_SAVE_NONE' }}
uses: espressif/esp-idf-ci-action@v1
with:
esp_idf_version: v5.1.2
target: esp32c6
path: './receiver/'
- name: find release if exists
uses: cardinalby/git-get-release-action@v1
id: get_release
env:
GITHUB_TOKEN: ${{ github.token }}
with:
doNotFailIfNotFound: true
releaseName: "${{ env.TAG }}-${{ env.SHA }}"
- name: release
uses: ncipollo/release-action@v1
id: create_release
with:
skipIfReleaseExists: true
name: ${{ env.TAG }}-${{ env.SHA }}
tag: ${{ env.TAG }}
allowUpdates: true
bodyFile: CHANGELOG.md
token: ${{ github.token }}
- name: upload linux artifact sender
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ github.token }}
with:
upload_url: ${{ steps.get_release.outputs.id && steps.get_release.outputs.upload_url || steps.create_release.outputs.upload_url }}
asset_path: ./sender/build/ESPNOWLogger.bin
asset_name: sender-${{ matrix.PROTOCOL }}-${{ matrix.SLEEP_MODE }}-${{ matrix.EXAMPLE_POWER_SAVE_MODE }}.bin
asset_content_type: application/octet-stream
- name: upload linux artifact receiver
if: ${{ matrix.PROTOCOL =='ESP_NOW' && matrix.SLEEP_MODE =='NO_SLEEP' && matrix.EXAMPLE_POWER_SAVE_MODE == 'EXAMPLE_POWER_SAVE_NONE' }}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ github.token }}
with:
upload_url: ${{ steps.get_release.outputs.id && steps.get_release.outputs.upload_url || steps.create_release.outputs.upload_url }}
asset_path: ./receiver/build/ESPNOWLogger.bin
asset_name: receiver.bin
asset_content_type: application/octet-stream
- name: upload receiver sdkconfig
if: ${{ matrix.PROTOCOL =='ESP_NOW' && matrix.SLEEP_MODE =='NO_SLEEP' && matrix.EXAMPLE_POWER_SAVE_MODE == 'EXAMPLE_POWER_SAVE_NONE' }}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ github.token }}
with:
upload_url: ${{ steps.get_release.outputs.id && steps.get_release.outputs.upload_url || steps.create_release.outputs.upload_url }}
asset_path: ./receiver/sdkconfig
asset_name: receiver-sdkconfig-${{ matrix.PROTOCOL }}-${{ matrix.SLEEP_MODE }}-${{ matrix.EXAMPLE_POWER_SAVE_MODE }}
asset_content_type: application/octet-stream
- name: upload sender sdkconfig
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ github.token }}
with:
upload_url: ${{ steps.get_release.outputs.id && steps.get_release.outputs.upload_url || steps.create_release.outputs.upload_url }}
asset_path: ./sender/sdkconfig
asset_name: sender-sdkconfig-${{ matrix.PROTOCOL }}-${{ matrix.SLEEP_MODE }}-${{ matrix.EXAMPLE_POWER_SAVE_MODE }}
asset_content_type: application/octet-stream