-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* rename artifacts * add workflow with date * add debug * Add branch name to artifact name and rm genpic job * Add branch name to artifact name for upload job * Add branch restrictions for dev and user branches * Add branch restrictions for dev and user branches * Add cleanup workspace for upload job * Test ignore branch * Test release CI workflow * Rename release CI * Add pre-release trigger * Rm branch restriction for CI * Add release trigger * rm branch restriction for CI * rm genpic job * Github: refactor actions, move linting to parallel actions, separate forlder for artifacts, build cleanup * Github: build date and commit hash on branches and tag on tags * Github: minor artifacts name cleanup * Github: decontaminate previous build leftovers * Github: better decontamination and release build SUFFIX * Github: fetch before decontamitation * Github: change decontamination logic, jump to first commit if submodules are broken * ReadMe: update links to latest firmware and images Co-authored-by: あく <[email protected]>
- Loading branch information
Showing
6 changed files
with
241 additions
and
183 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,180 @@ | ||
name: 'Build' | ||
|
||
on: push | ||
|
||
env: | ||
TARGETS: f6 | ||
|
||
jobs: | ||
build: | ||
runs-on: [self-hosted] | ||
steps: | ||
- name: 'Cleanup workspace' | ||
uses: AutoModality/action-clean@v1 | ||
|
||
- name: 'Decontaminate previous build leftovers' | ||
run: | | ||
git submodule status \ | ||
|| git checkout `git rev-list --max-parents=0 HEAD | tail -n 1` | ||
- name: 'Checkout code' | ||
uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
submodules: true | ||
|
||
- name: 'Docker cache' | ||
uses: satackey/[email protected] | ||
continue-on-error: true | ||
with: | ||
key: docker-cache-${{ hashFiles('docker/**') }}-{hash} | ||
restore-keys: docker-cache-${{ hashFiles('docker/**') }}- | ||
|
||
- name: 'Build docker image' | ||
uses: ./.github/actions/docker | ||
|
||
- name: 'Make artifacts directory' | ||
run: | | ||
test -d artifacts && rm -rf artifacts || true | ||
mkdir artifacts | ||
- name: 'Generate tag suffix' | ||
if: startsWith(github.ref, 'refs/tags/') == true | ||
run: echo "SUFFIX=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV | ||
|
||
- name: 'Generate branch suffix' | ||
if: startsWith(github.ref, 'refs/tags/') != true | ||
run: echo "SUFFIX=$(date +'%Y-%m-%d')-$(git rev-parse --short HEAD)" >> $GITHUB_ENV | ||
|
||
- name: 'Build bootloader in docker' | ||
uses: ./.github/actions/docker | ||
with: | ||
run: | | ||
for TARGET in ${TARGETS} | ||
do | ||
make -j$(nproc) -C bootloader TARGET=${TARGET} | ||
done | ||
- name: 'Generate dfu file for bootloader' | ||
uses: ./.github/actions/docker | ||
with: | ||
run: | | ||
for TARGET in ${TARGETS} | ||
do | ||
hex2dfu \ | ||
-i bootloader/.obj/${TARGET}/bootloader.hex \ | ||
-o bootloader/.obj/${TARGET}/bootloader.dfu | ||
done | ||
- name: 'Build firmware in docker' | ||
uses: ./.github/actions/docker | ||
with: | ||
run: | | ||
for TARGET in ${TARGETS} | ||
do | ||
make -j$(nproc) -C firmware TARGET=${TARGET} | ||
done | ||
- name: 'Generate dfu file for firmware' | ||
uses: ./.github/actions/docker | ||
with: | ||
run: | | ||
for TARGET in ${TARGETS} | ||
do | ||
hex2dfu \ | ||
-i firmware/.obj/${TARGET}/firmware.hex \ | ||
-o firmware/.obj/${TARGET}/firmware.dfu | ||
done | ||
- name: 'Generate full hex file' | ||
uses: ./.github/actions/docker | ||
with: | ||
run: | | ||
for TARGET in ${TARGETS} | ||
do | ||
srec_cat \ | ||
bootloader/.obj/${TARGET}/bootloader.hex -Intel \ | ||
firmware/.obj/${TARGET}/firmware.hex -Intel \ | ||
-o firmware/.obj/${TARGET}/full.hex -Intel | ||
done | ||
- name: 'Move upload files' | ||
uses: ./.github/actions/docker | ||
with: | ||
run: | | ||
for TARGET in ${TARGETS} | ||
do | ||
mv bootloader/.obj/${TARGET}/bootloader.dfu \ | ||
artifacts/flipper-z-${TARGET}-bootloader-${SUFFIX}.dfu | ||
mv bootloader/.obj/${TARGET}/bootloader.bin \ | ||
artifacts/flipper-z-${TARGET}-bootloader-${SUFFIX}.bin | ||
mv bootloader/.obj/${TARGET}/bootloader.elf \ | ||
artifacts/flipper-z-${TARGET}-bootloader-${SUFFIX}.elf | ||
mv firmware/.obj/${TARGET}/firmware.dfu \ | ||
artifacts/flipper-z-${TARGET}-firmware-${SUFFIX}.dfu | ||
mv firmware/.obj/${TARGET}/firmware.bin \ | ||
artifacts/flipper-z-${TARGET}-firmware-${SUFFIX}.bin | ||
mv firmware/.obj/${TARGET}/firmware.elf \ | ||
artifacts/flipper-z-${TARGET}-firmware-${SUFFIX}.elf | ||
done | ||
- name: 'Generate full dfu file' | ||
uses: ./.github/actions/docker | ||
with: | ||
run: | | ||
for TARGET in ${TARGETS} | ||
do | ||
hex2dfu \ | ||
-i firmware/.obj/${TARGET}/full.hex \ | ||
-o artifacts/flipper-z-${TARGET}-full-${SUFFIX}.dfu | ||
done | ||
- name: 'Full flash asssembly: bootloader as base' | ||
run: | | ||
for TARGET in ${TARGETS} | ||
do | ||
cp \ | ||
artifacts/flipper-z-${TARGET}-bootloader-${SUFFIX}.bin \ | ||
artifacts/flipper-z-${TARGET}-full-${SUFFIX}.bin | ||
done | ||
- name: 'Full flash asssembly: bootloader padding' | ||
run: | | ||
for TARGET in ${TARGETS} | ||
do | ||
truncate -s 32768 artifacts/flipper-z-${TARGET}-full-${SUFFIX}.bin | ||
done | ||
- name: 'Full flash asssembly: append firmware' | ||
run: | | ||
for TARGET in ${TARGETS} | ||
do | ||
cat \ | ||
artifacts/flipper-z-${TARGET}-firmware-${SUFFIX}.bin \ | ||
>> artifacts/flipper-z-${TARGET}-full-${SUFFIX}.bin | ||
done | ||
- name: 'Publish artifacts' | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: artifacts | ||
path: artifacts/* | ||
if-no-files-found: error | ||
retention-days: 7 | ||
|
||
- name: 'Upload artifacts to update server' | ||
uses: burnett01/[email protected] | ||
with: | ||
switches: -avzP --delete | ||
path: artifacts/ | ||
remote_path: "${{ secrets.RSYNC_DEPLOY_BASE_PATH }}${GITHUB_REF##*/}/" | ||
remote_host: ${{ secrets.RSYNC_DEPLOY_HOST }} | ||
remote_port: ${{ secrets.RSYNC_DEPLOY_PORT }} | ||
remote_user: ${{ secrets.RSYNC_DEPLOY_USER }} | ||
remote_key: ${{ secrets.RSYNC_DEPLOY_KEY }} | ||
|
||
- name: 'Trigger update server reindex' | ||
uses: wei/curl@master | ||
with: | ||
args: -X POST -F 'key=${{ secrets.REINDEX_KEY }}' ${{ secrets.REINDEX_URL }} | ||
|
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
name: 'Lint C/C++ with clang-format' | ||
|
||
on: push | ||
|
||
env: | ||
TARGETS: f6 | ||
|
||
jobs: | ||
lint_c_cpp: | ||
runs-on: [self-hosted] | ||
steps: | ||
- name: 'Cleanup workspace' | ||
uses: AutoModality/action-clean@v1 | ||
|
||
- name: 'Checkout code' | ||
uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: 'Checkout submodules: update' | ||
run: git submodule update --init --recursive | ||
|
||
- name: 'Checkout submodules: sync' | ||
run: git submodule sync | ||
|
||
- name: 'Docker cache' | ||
uses: satackey/[email protected] | ||
continue-on-error: true | ||
with: | ||
key: docker-cache-${{ hashFiles('docker/**') }}-{hash} | ||
restore-keys: docker-cache-${{ hashFiles('docker/**') }}- | ||
|
||
- name: 'Build docker image' | ||
uses: ./.github/actions/docker | ||
|
||
- name: 'Check syntax' | ||
uses: ./.github/actions/docker | ||
continue-on-error: false | ||
with: | ||
run: /syntax_check.sh |
Oops, something went wrong.