From 391a7191adcd66f99d2b6731e7d92e0fd06b774a Mon Sep 17 00:00:00 2001 From: Yury Popov Date: Tue, 15 Nov 2022 22:57:43 +0300 Subject: [PATCH] ci: Split dist checks from CI run, upgrade outdated actions --- .github/workflows/ci.yml | 61 +----------------------------- .github/workflows/dist.yml | 70 +++++++++++++++++++++++++++++++++++ .github/workflows/fuzzing.yml | 8 ++-- 3 files changed, 76 insertions(+), 63 deletions(-) create mode 100644 .github/workflows/dist.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index adfda0f5..125968d9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -164,7 +164,7 @@ jobs: sanitizer: valgrind steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: enable 32bit architecture run: sudo dpkg --add-architecture i386 if: matrix.arch == 'x86-32' @@ -187,7 +187,7 @@ jobs: ./configure ${{ matrix.config }} - name: Store the config if: ${{ failure() }} && matrix.arch != 'arm-32' && matrix.arch != 'armel-32' && matrix.arch != 'arm-64' - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: config-${{ matrix.arch }}-${{ matrix.sanitizer }}.log path: config.log @@ -209,60 +209,3 @@ jobs: CFLAGS="${{ matrix.configflags }} ${{ matrix.archconfigflags }}" CXXFLAGS="${{ matrix.configflags }} ${{ matrix.archconfigflags }}" ./configure ${{ matrix.config }} ${{ matrix.build_env }} make ${{ matrix.check_env }} make check - - reprotest: - - runs-on: ubuntu-latest - name: Build with reprotest on ${{ matrix.arch }} - strategy: - fail-fast: false - matrix: - arch: [x86-64, x86-32] - - include: - - arch: x86-32 - archdeps: "gcc-multilib g++-multilib libpcaudio-dev:i386 libsonic-dev:i386 libc6-dbg:i386" - archconfigflags: "-m32" - - - arch: x86-64 - archdeps: "" - archconfigflags: '' - - steps: - - uses: actions/checkout@v2 - - name: enable 32bit architecture - run: sudo dpkg --add-architecture i386 - if: matrix.arch == 'x86-32' - - name: dependencies - run: sudo apt-get update && sudo apt-get install ${{ env.deps }} reprotest ${{ matrix.archdeps }} - - name: autoconf - run: ./autogen.sh ; chmod -x INSTALL m4/*.m4 - - name: run - run: reprotest 'CFLAGS="${{ matrix.archconfigflags }}" CXXFLAGS="${{ matrix.archconfigflags }}" ./configure --without-gradle && make clean && make && make check && touch success' success - - distcheck: - - runs-on: ubuntu-latest - name: Run distcheck - steps: - - uses: actions/checkout@v2 - - name: dependencies - run: sudo apt-get update && sudo apt-get install ${{ env.deps }} - - name: autoconf - run: ./autogen.sh ; chmod -x INSTALL m4/*.m4 - - name: configure - run: ./configure - - name: make - run: make - - name: make check - run: make check - - name: make dist - run: make dist - - name: unpack - run: mkdir unpack && tar -C unpack -xf *.tar.gz - - name: re-configure - run: cd unpack/espeak-ng-* && ./configure - - name: re-make - run: cd unpack/espeak-ng-* && make - - name: re-make check - run: cd unpack/espeak-ng-* && make check diff --git a/.github/workflows/dist.yml b/.github/workflows/dist.yml new file mode 100644 index 00000000..977e0464 --- /dev/null +++ b/.github/workflows/dist.yml @@ -0,0 +1,70 @@ +name: Dist + +on: + workflow_dispatch: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + deps: libpcaudio-dev libsonic-dev ronn kramdown python3 + +jobs: + + reprotest: + + runs-on: ubuntu-latest + name: Build with reprotest on ${{ matrix.arch }} + strategy: + fail-fast: false + matrix: + arch: [x86-64, x86-32] + + include: + - arch: x86-32 + archdeps: "gcc-multilib g++-multilib libpcaudio-dev:i386 libsonic-dev:i386 libc6-dbg:i386" + archconfigflags: "-m32" + + - arch: x86-64 + archdeps: "" + archconfigflags: '' + + steps: + - uses: actions/checkout@v3 + - name: enable 32bit architecture + run: sudo dpkg --add-architecture i386 + if: matrix.arch == 'x86-32' + - name: dependencies + run: sudo apt-get update && sudo apt-get install ${{ env.deps }} reprotest ${{ matrix.archdeps }} + - name: autoconf + run: ./autogen.sh ; chmod -x INSTALL m4/*.m4 + - name: run + run: reprotest 'CFLAGS="${{ matrix.archconfigflags }}" CXXFLAGS="${{ matrix.archconfigflags }}" ./configure --without-gradle && make clean && make && make check && touch success' success + + distcheck: + + runs-on: ubuntu-latest + name: Run distcheck + steps: + - uses: actions/checkout@v3 + - name: dependencies + run: sudo apt-get update && sudo apt-get install ${{ env.deps }} + - name: autoconf + run: ./autogen.sh ; chmod -x INSTALL m4/*.m4 + - name: configure + run: ./configure + - name: make + run: make + - name: make check + run: make check + - name: make dist + run: make dist + - name: unpack + run: mkdir unpack && tar -C unpack -xf *.tar.gz + - name: re-configure + run: cd unpack/espeak-ng-* && ./configure + - name: re-make + run: cd unpack/espeak-ng-* && make + - name: re-make check + run: cd unpack/espeak-ng-* && make check diff --git a/.github/workflows/fuzzing.yml b/.github/workflows/fuzzing.yml index 6465f556..8b00b6d2 100644 --- a/.github/workflows/fuzzing.yml +++ b/.github/workflows/fuzzing.yml @@ -22,7 +22,7 @@ jobs: archdeps: "" archconfigflags: '' steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: enable 32bit architecture run: sudo dpkg --add-architecture i386 if: matrix.arch == 'x86-32' @@ -38,7 +38,7 @@ jobs: ./configure --with-libfuzzer - name: Store the fuzzer config if: ${{ failure() }} - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: config-${{ matrix.arch }}-${{ matrix.lang }}.log path: config.log @@ -78,7 +78,7 @@ jobs: run: mkdir tests/fuzzing/CORPUS_DIR ; FUZZ_VOICE=${{ matrix.lang }} tests/fuzzing/synth_fuzzer.test -seed=1 -runs=10000 -max_len=4096 tests/fuzzing/CORPUS_DIR - name: Store the crash POC if: ${{ failure() }} - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: crash-${{ matrix.arch }}-${{ matrix.lang }}.1 path: crash-* timeout-* @@ -86,7 +86,7 @@ jobs: run: cp dictsource/${{ matrix.lang }}_* tests/fuzzing/CORPUS_DIR/ || true ; FUZZ_VOICE=${{ matrix.lang }} tests/fuzzing/synth_fuzzer.test -seed=1 -runs=10000 -max_len=4096 tests/fuzzing/CORPUS_DIR - name: Store the crash POC if: ${{ failure() }} - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: crash-${{ matrix.arch }}-${{ matrix.lang }}.2 path: crash-* timeout-*