Skip to content

Linux

Linux #460

Workflow file for this run

name: Linux
on:
# workflow_run:
# workflows: ["CreateRelease"]
# types:
# - completed
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
inputs:
vt_ver:
description: "VESC Tool Version"
required: true
default: "master"
type: string
fw_ver:
description: "Firmware Version"
required: true
default: "master"
type: string
prerelease:
description: "Release as Prerelease"
required: true
default: true
type: boolean
jobs:
notify:
runs-on: ${{ matrix.os }}
if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }}
strategy:
fail-fast: false
max-parallel: 6
matrix:
qt: [5.15.2]
os: [ubuntu-20.04]
steps:
- name: Version2Ref
run: |
if [[ "${{ inputs.vt_ver }}" =~ ^([0-9]+)\.([0-9]+)$ ]]; then
echo "VT_REF=release_${BASH_REMATCH[1]}_${BASH_REMATCH[2]}" >> $GITHUB_ENV
elif [[ "${{ inputs.vt_ver }}" == "master" ]]; then
echo "VT_REF=master" >> $GITHUB_ENV
else
echo "VT_REF=${{ inputs.vt_ver }}" >> $GITHUB_ENV
fi
shell: bash
- name: Clone Repository
uses: actions/checkout@v4
with:
ref: ${{ env.VT_REF }}
- name: Setup
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
id: GetVersion
run: |
VT_VERSION=$(grep -m1 VT_VERSION vesc_tool.pro | awk -F= '{ print $2 }' | sed 's/[ ",]//g')
echo "VERSION=${VT_VERSION}" >> $GITHUB_OUTPUT
echo "PACKAGE_VERSION=${VT_VERSION}" >> $GITHUB_ENV
if [ "${{ inputs.prerelease }}" = "true" ]; then
echo "RELEASE_NOTES=**VESC Tool Nightly Build ${VT_VERSION}**" >> $GITHUB_OUTPUT
else
echo "RELEASE_NOTES=**VESC Tool Release Build ${VT_VERSION}**" >> $GITHUB_OUTPUT
fi
- name: Install Qt (Linux)
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt }}
setup-python: false
cache: 'true'
cache-key-prefix: 'install-qt-action'
- name: Create TMP Dir
id: mktemp
run: echo "FW_TMP_DIR=$(mktemp -d)" >> $GITHUB_ENV
shell: bash
- name: Download FW Artifact
uses: dawidd6/action-download-artifact@v3
with:
name: firmware-${{ inputs.fw_ver }}
path: ${{ env.FW_TMP_DIR }}
github_token: ${{secrets.GITHUB_TOKEN}}
repo: darwinbeing/bldc
workflow: firmware.yml
workflow_conclusion: success
search_artifacts: true
- name: Apply Patch
run: |
if [[ "${{ inputs.vt_ver }}" =~ ^([0-9]+)\.([0-9]+)$ ]]; then
PATCH_VERSION="${{ inputs.vt_ver }}"
elif [[ "${{ inputs.vt_ver }}" == "master" ]]; then
PATCH_VERSION="master"
else
PATCH_VERSION=${{ env.PACKAGE_VERSION }}
fi
URL=https://raw.githubusercontent.com/darwinbeing/vesc_tool/ci/patches/"${PATCH_VERSION}"/vesc_tool.patch
curl "$URL" -o ${{ env.FW_TMP_DIR }}/vesc_tool.patch
git apply "${{ env.FW_TMP_DIR }}/vesc_tool.patch"
shell: bash
- name: Configure And Compile
continue-on-error: true
run: |
mkdir -p res/firmwares
cp -rv ${{ env.FW_TMP_DIR }}/* res/firmwares/
./build_lin
# - name: Upload Artifact
# uses: actions/upload-artifact@v3
# with:
# name: VESC_Tool-lin.AppImage
# path: VESC_Tool-x86_64.AppImage
- name: Upload Release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ steps.GetVersion.outputs.VERSION }}
release_name: Release ${{ steps.GetVersion.outputs.VERSION }}
body: ${{ steps.GetVersion.outputs.RELEASE_NOTES }}
file: VESC_Tool-x86_64.AppImage
asset_name: VESC_Tool-lin.AppImage
overwrite: true
prerelease: ${{ inputs.prerelease }}
# - name: Upload Release
# uses: svenstaro/upload-release-action@v2
# with:
# repo_token: ${{ secrets.GITHUB_TOKEN }}
# tag: ${{ steps.GetVersion.outputs.VERSION }}
# release_name: Release ${{ steps.GetVersion.outputs.VERSION }}
# body: ${{ steps.GetVersion.outputs.RELEASE_NOTES }}
# file: vesc_tool_platinum-lin.zip
# asset_name: VESC_Tool-lin.zip
# overwrite: true
# prerelease: ${{ inputs.prerelease }}
# target_commit: ${{ env.VT_REF }}