blackmagic-esp32-s2/.github/workflows/build.yml

116 lines
3.6 KiB
YAML

name: 'Build'
on:
push:
branches:
- dev
- "release*"
tags:
- '*'
pull_request:
jobs:
build:
runs-on: [self-hosted, Office]
steps:
- name: Store UID
id: uid
run: |
id=`id -u $USER`
echo ::set-output name=id::$id
- name: Cleanup workspace
uses: AutoModality/action-clean@v1
- name: Decontaminate previous build leftovers
run: |
if [ -d .git ]
then
git submodule status \
|| git checkout `git rev-list --max-parents=0 HEAD | tail -n 1`
fi
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: recursive
ref: ${{ github.event.pull_request.head.sha }}
- name: Generate suffix and folder name
id: names
run: |
REF=${{ github.ref }}
if [[ ${{ github.event_name }} == 'pull_request' ]]; then
REF=${{ github.head_ref }}
fi
BRANCH_OR_TAG=${REF#refs/*/}
SHA=$(git rev-parse --short HEAD)
if [[ "${{ github.ref }}" == "refs/tags/"* ]]; then
SUFFIX=${BRANCH_OR_TAG//\//_}
else
SUFFIX=${BRANCH_OR_TAG//\//_}-$(date +'%d%m%Y')-${SHA}
fi
echo "::set-output name=artifacts-path::${BRANCH_OR_TAG}"
echo "::set-output name=suffix::${SUFFIX}"
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: '17'
cache: 'npm'
cache-dependency-path: components/svelte-portal
- name: Install node dependencies
run: npm install
working-directory: components/svelte-portal
- name: Build captive portal
run: npm run build
working-directory: components/svelte-portal
- name: Build firmware
uses: Intake-Health/esp-idf-ci-action@release-v4.4
- name: Fix ownership
uses: peter-murray/reset-workspace-ownership-action@v1
with:
user_id: ${{ steps.uid.outputs.id }}
- name: Make artifacts directory
if: ${{ !github.event.pull_request.head.repo.fork }}
run: |
test -d artifacts && rm -rf artifacts || true
mkdir artifacts
- name: Move upload files
if: ${{ !github.event.pull_request.head.repo.fork }}
run: |
mv build/bootloader/bootloader.bin artifacts/
mv build/partition_table/partition-table.bin artifacts/
mv build/blackmagic.bin artifacts/
cp scripts/flash_nix.sh artifacts/
- name: Generate flash.command file
if: ${{ !github.event.pull_request.head.repo.fork }}
run: |
echo "esptool.py -p (PORT) -b 460800 --before default_reset --after hard_reset --chip esp32s2 write_flash $(tr '\n' ' ' < build/flash_args)" > artifacts/flash.command
sed -i 's/partition_table\///g' artifacts/flash.command
sed -i 's/bootloader\///g' artifacts/flash.command
- name: Upload artifacts to update server
if: ${{ !github.event.pull_request.head.repo.fork }}
uses: burnett01/rsync-deployments@5.1
with:
switches: -avzP --delete --mkpath
path: artifacts/
remote_path: ${{ secrets.RSYNC_DEPLOY_BASE_PATH }}${{steps.names.outputs.artifacts-path}}/
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: Cleanup artifacts
run: |
rm -rf artifacts