From 35f3b686b542f0f798190ebce8656b5c9f109207 Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin Date: Wed, 17 Aug 2022 21:17:44 +0300 Subject: [PATCH] Check if we can skip toolchain build --- .github/workflows/hi3516ev200_matrix.yml | 27 ++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/.github/workflows/hi3516ev200_matrix.yml b/.github/workflows/hi3516ev200_matrix.yml index 1485655f..604f0433 100644 --- a/.github/workflows/hi3516ev200_matrix.yml +++ b/.github/workflows/hi3516ev200_matrix.yml @@ -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