Check if we can skip toolchain build

pull/365/head
Dmitry Ilyin 2022-08-17 21:17:44 +03:00
parent d1c92f0f4a
commit 35f3b686b5
1 changed files with 23 additions and 4 deletions

View File

@ -17,10 +17,16 @@ on:
- '**.md'
workflow_dispatch:
env:
RELEASES: https://github.com/OpenIPC/firmware/releases/download/latest
REPO_NAME: ${{ github.event.repository.name }}
jobs:
toolchain:
name: Toolchain
runs-on: ubuntu-latest
env:
NEEDED: true
strategy:
fail-fast: false
@ -36,13 +42,19 @@ jobs:
with:
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit.
- name: Determine toolchain name
- name: Determine toolchain name and can we skip build
run: |
make prepare
TOOLNAME=$(make BOARD=unknown_unknown_${{ matrix.platform }}_openipc toolname)
echo "TOOLNAME=$TOOLNAME" >> $GITHUB_ENV
CHECK=$(curl -o /dev/null --silent -Iw '%{http_code}' \
${RELEASES}/${TOOLNAME}.tgz)
if [ "$CHECK" != "404" ]; then
echo "NEEDED=false" >> $GITHUB_ENV
fi
- name: Install build dependencies
if: env.NEEDED
run: |
make install-deps
#mkdir -p tmp
@ -55,12 +67,13 @@ jobs:
fi
- name: Free disk space
if: ${{ !env.ACT }}
if: ${{ !env.ACT && env.NEEDED }}
run: |
sudo apt clean
docker rmi $(docker image ls -aq)
- name: Build Buildroot SDK
if: env.NEEDED
run: |
HEAD_TAG=$(git tag --points-at HEAD)
GIT_HASH=$(git rev-parse --short $GITHUB_SHA)
@ -87,13 +100,14 @@ jobs:
echo "SDK_PATH=$SDK_PATH" >> $GITHUB_ENV
- uses: actions/upload-artifact@v3
if: ${{ (env.ACT || github.event_name == 'pull_request') && env.NEEDED }}
with:
name: '${{ env.TOOLNAME }}.tgz'
path: ${{ env.SDK_PATH }}
retention-days: 1
- name: Create release
if: ${{ !env.ACT && github.event_name != 'pull_request' }}
if: ${{ !env.ACT && github.event_name != 'pull_request' && env.NEEDED }}
uses: actions/create-release@v1
continue-on-error: true
env:
@ -105,7 +119,7 @@ jobs:
prerelease: ${{ env.PRERELEASE }}
- name: Upload SDK to release
if: ${{ !env.ACT && github.event_name != 'pull_request' }}
if: ${{ !env.ACT && github.event_name != 'pull_request' && env.NEEDED }}
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
@ -204,6 +218,7 @@ jobs:
echo "TOOLNAME=$TOOLNAME" >> $GITHUB_ENV
- uses: actions/download-artifact@v3
if: ${{ (env.ACT || github.event_name == 'pull_request') }}
with:
name: '${{ env.TOOLNAME }}.tgz'
@ -225,6 +240,10 @@ jobs:
CONF_PATH=$(find . -name "${BOARD}_defconfig")
echo Using $TOOLNAME
if [ ! -f "$TOOLNAME.tgz" ];
wget ${RELEASES}/${TOOLNAME}.tgz
fi
set -x
echo "BR2_TOOLCHAIN_EXTERNAL=y" >> $CONF_PATH
echo "BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y" >> $CONF_PATH