diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index edc22687c..88233995c 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -1,13 +1,99 @@ name: Ubuntu Workflow on: + pull_request: branches: [ gcos4gnucobol-3.x ] push: # manual run in actions tab - for all branches workflow_dispatch: + jobs: + + minmal_build: + name: Build and test with minimal dependencies + strategy: + fail-fast: true + matrix: + os: [ ubuntu-latest ] + runs-on: ${{ matrix.os }} + + steps: + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install packages + run: | + sudo apt-get update + sudo apt-get install automake libtool bison flex help2man + + - name: Set git user + run: | + git config --global user.name github-actions + git config --global user.email github-actions-bot@users.noreply.github.com + + - name: Build environment setup + run: | + ./build_aux/bootstrap + mkdir _build + + - name: Configure + run: | + cd _build + ../configure --disable-dependency-tracking \ + --without-db --without-curses \ + --without-xml2 --without-json \ + --without-iconv --disable-nls + + - name: Upload config.log + uses: actions/upload-artifact@v4 + if: failure() + with: + name: config-${{ matrix.os }}.log + path: _build/config.log + + - name: Build + run: | + make -C _build --jobs=$(($(nproc)+1)) + + - name: run internal tests + run: | + make -C _build check TESTSUITEFLAGS="--jobs=$(($(nproc)+1))" || \ + make -C _build check TESTSUITEFLAGS="--recheck --verbose" + + - name: Upload testsuite.log + uses: actions/upload-artifact@v4 + if: failure() + with: + name: testsuite-${{ matrix.os }}.log + path: _build/tests/testsuite.log + + - name: Cache newcob.val + uses: actions/cache@v4 + with: + path: _build/tests/cobol85/newcob.val + key: newcob-val + save-always: true + enableCrossOsArchive: true + + - name: NIST85 Test Suite + run: | + make -C _build/tests/cobol85 EXEC85 test \ + --jobs=$(($(nproc)+1)) + + - name: Upload NIST85 Test Suite results + uses: actions/upload-artifact@v4 + with: + name: NIST85 results on ${{ matrix.os }} + path: | + _build/tests/cobol85/summary.* + _build/tests/cobol85/**/*.log + _build/tests/cobol85/**/*.out + _build/tests/cobol85/**/duration.txt + + build: name: Build, test and provide nightly strategy: @@ -120,8 +206,10 @@ jobs: with: name: NIST85 results on ${{ matrix.os }} path: | + _build/tests/cobol85/summary.* _build/tests/cobol85/**/*.log _build/tests/cobol85/**/*.out + _build/tests/cobol85/**/duration.txt coverage: @@ -223,4 +311,3 @@ jobs: # Shall fail until we have a working account on codecov.io fail_ci_if_error: false # optional (default = false) verbose: true # optional (default = false) -