Files
bobbycar-boardcomputer-firm…/.github/workflows/main.yml
T
2021-12-07 16:12:56 +01:00

106 lines
4.3 KiB
YAML

on:
push:
page_build:
release:
types:
- created
jobs:
build:
runs-on: ubuntu-latest
environment: deploy
strategy:
fail-fast: false
matrix:
node: [feedc0de, comred, peter, mick]
steps:
- name: Checkout (without submodules)
uses: actions/checkout@v2
- name: Checkout and install esp-idf
uses: 0xFEEDC0DE64/checkout_install_esp_idf@main
- name: Fast Submodule Checkout components/arduino-esp32
uses: 0xFEEDC0DE64/fast_submodule_checkout@main
with:
submodule: components/arduino-esp32
- name: Checkout remaining submodules
run: git submodule update --init --recursive $(git submodule | awk '{ if ($2 != "esp-idf" && $2 != "components/arduino-esp32") print $2 }')
- name: Setup ccache
uses: 0xFEEDC0DE64/setup_ccache@main
with:
key: ${{ runner.os }}-ccache-${{ matrix.node }}
- name: Install ignore
run: |
mkdir -p "$HOME/.ssh"
echo "${{ secrets.RSYNC_SSH_KEY }}" >"$HOME/.ssh/key"
chmod 600 "$HOME/.ssh/key"
rsync -azv --exclude=/.git/ --exclude=/.github/ -e "ssh -i $HOME/.ssh/key -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=quiet" github@commanderred.xyz:/home/github/ignore ./
- name: Build firmware
run: |
export CCACHE_MAXSIZE=400M CCACHE_BASEDIR="$(pwd)"
. export.sh
./switchconf.sh ${{ matrix.node }}
idf.py --ccache build
ccache -s
- name: Set outputs
id: vars
run: |
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
- name: Upload Build Artifact
uses: actions/upload-artifact@v2.2.4
with:
name: bobbyquad_${{ matrix.node }}
path: |
build_${{ matrix.node }}/bobbyquad_${{ matrix.node }}.bin
build_${{ matrix.node }}/bobbyquad_${{ matrix.node }}.elf
build_${{ matrix.node }}/bootloader/bootloader.bin
build_${{ matrix.node }}/bootloader/bootloader.elf
build_${{ matrix.node }}/partition_table/partition-table.bin
- name: Prepare to upload
run: |
mkdir ${{ matrix.node }}
cp build_${{ matrix.node }}/bobbyquad_${{ matrix.node }}.bin ${{ matrix.node }}/${{ steps.vars.outputs.sha_short }}.${{ steps.vars.outputs.branch }}.bin
cp build_${{ matrix.node }}/bobbyquad_${{ matrix.node }}.elf ${{ matrix.node }}/${{ steps.vars.outputs.sha_short }}.${{ steps.vars.outputs.branch }}.elf
echo ${{ steps.vars.outputs.sha_short }}
echo Prepare for upload from ${{ matrix.node }}/ to /home/github/builds/${{ matrix.node }}
- name: Deploy to file-host
uses: up9cloud/action-rsync@v1.3
env:
HOST: commanderred.xyz
KEY: ${{ secrets.RSYNC_SSH_KEY }}
TARGET: /home/github/tmp
USER: github
SSH_ARGS: '-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
SOURCE: '${{ matrix.node }}'
POST_SCRIPT: "echo Upload done"
- name: Create Symlink on server
uses: appleboy/ssh-action@master
with:
host: commanderred.xyz
username: github
key: ${{ secrets.RSYNC_SSH_KEY }}
port: 22
script: |
mkdir -p /home/github/builds/${{ matrix.node }}
mv /home/github/tmp/${{ matrix.node }}/* /home/github/builds/${{ matrix.node }}/
rm /home/github/tmp/${{ matrix.node }} -rf
rm -f /home/github/builds/${{ matrix.node }}/latest.bin
rm -f /home/github/builds/${{ matrix.node }}/${{ steps.vars.outputs.branch }}.latest.bin
ln -s /home/github/builds/${{ matrix.node }}/${{ steps.vars.outputs.sha_short }}.${{ steps.vars.outputs.branch }}.bin /home/github/builds/${{ matrix.node }}/latest.bin
ln -s /home/github/builds/${{ matrix.node }}/${{ steps.vars.outputs.sha_short }}.${{ steps.vars.outputs.branch }}.bin /home/github/builds/${{ matrix.node }}/${{ steps.vars.outputs.branch }}.latest.bin
cd bobbycar-boardcomputer-firmware
git pull