diff --git a/.github/workflows/BuildTest.yml b/.github/workflows/BuildTest.yml index f8caadfb..eb7733c8 100644 --- a/.github/workflows/BuildTest.yml +++ b/.github/workflows/BuildTest.yml @@ -1,3 +1,4 @@ +# This is a basic workflow to help you get started with Actions name: Manually executable test for ESP-IDF v4.3.1 on: workflow_dispatch: @@ -10,10 +11,14 @@ on: description: 'Release' required: true type: boolean + # push: + # branches: + # - '**4.3' jobs: bootstrap: - name: Preparation + name: Global setup + runs-on: ubuntu-latest container: image: sle118/squeezelite-esp32-idfv43 outputs: @@ -22,9 +27,15 @@ jobs: release_flag: ${{ steps.build_flags.outputs.release_flag }} mock: ${{ steps.build_flags.outputs.mock }} steps: + - name: Set Build options from workflow dispatch event + run: | + ui_build_option="" && [[ ${{ inputs.ui_build }} ]] && ui_build_option="--ui_build" + release_build_option="" && [[ ${{ inputs.release_build }} ]] && release_build_option="--force" + echo "ui_build_option=$ui_build_option" >> $GITHUB_ENV + echo "release_build_option=$release_build_option" >> $GITHUB_ENV - uses: actions/checkout@v2 with: - fetch-depth: 15 + fetch-depth: 0 submodules: true - name: Generate common build number id: buildnumber @@ -34,16 +45,19 @@ jobs: - name: Set build flags id: build_flags run: | + git config --global --add safe.directory /__w/squeezelite-esp32/squeezelite-esp32 + echo "Dumping environment" + env . /opt/esp/python_env/idf4.3_py3.8_env/bin/activate # build_flags support the following options # --mock - to mock the compilation part - this is to be used for testing only # --force - to force a release build even if the last commit message doesn't contain the word "release" # --ui_build - to force a ui_build even if the last commit message doesn't contain "[ui-build]" - build_tools.py build_flags --ui_build - + build_tools.py build_flags ${{ env.ui_build_option }} ${{ env.release_build_option }} preparation: name: Preparation needs: bootstrap + runs-on: ubuntu-latest container: image: sle118/squeezelite-esp32-idfv43 steps: @@ -53,14 +67,11 @@ jobs: echo "Web Build Flag=${{needs.bootstrap.outputs.ui_build}}" echo "Mock flag=${{needs.bootstrap.outputs.mock}}" echo "Release Flag=${{needs.bootstrap.outputs.release_flag}}" + git config --global --add safe.directory /__w/squeezelite-esp32/squeezelite-esp32 - uses: actions/checkout@v2 with: - fetch-depth: 15 + fetch-depth: 0 submodules: true - - name: Pull latest - run: | - git pull - git submodule update - name: Refresh certificates run: | git update-index --chmod=+x ./server_certs/getcert.sh @@ -81,7 +92,6 @@ jobs: - name: Update repository with prebuilt items if: ${{ needs.bootstrap.outputs.ui_build == 1 || needs.bootstrap.outputs.release_flag == 1 }} run: | - git fetch git config user.name github-actions git config user.email github-actions@github.com git add server_certs @@ -102,16 +112,14 @@ jobs: components/wifi-manager/webapp/dist/* components/wifi-manager/webapp/*.cmake build: + runs-on: ubuntu-latest container: image: sle118/squeezelite-esp32-idfv43 needs: [preparation,bootstrap] strategy: - max-parallel: 3 matrix: - #node: [I2S-4MFlash, SqueezeAmp, Muse] - #depth: [16, 32] - node: [I2S-4MFlash] - depth: [16] + node: [I2S-4MFlash, SqueezeAmp, Muse] + depth: [16, 32] exclude: - node: Muse depth: 32 @@ -120,7 +128,7 @@ jobs: steps: - uses: actions/checkout@v2 with: - fetch-depth: 15 + fetch-depth: 0 submodules: true - name: Show Build Flags run: | @@ -132,6 +140,8 @@ jobs: - name: Set build parameters run: | . /opt/esp/python_env/idf4.3_py3.8_env/bin/activate + git config --global --add safe.directory /__w/squeezelite-esp32/squeezelite-esp32 + git status build_tools.py environment --build ${{ needs.bootstrap.outputs.build_number }} --env_file "$GITHUB_ENV" --node "${{matrix.node}}" --depth ${{matrix.depth}} --major 2 --docker sle118/squeezelite-esp32-idfv43 - uses: actions/download-artifact@master @@ -240,12 +250,13 @@ jobs: name: Web Installer if: ${{ needs.bootstrap.outputs.release_flag == 1 && needs.bootstrap.outputs.mock == 0 }} needs: [build, preparation,bootstrap] + runs-on: ubuntu-latest container: image: sle118/squeezelite-esp32-idfv43 steps: - uses: actions/checkout@v2 with: - fetch-depth: 15 + fetch-depth: 0 submodules: true - uses: actions/download-artifact@master name: Restore last build