name: ci-tests
on: [push, pull_request]
permissions: {}
jobs:
  ci_tests_ubuntu-22:
    runs-on: ubuntu-22.04
    name: Ubuntu-22.04 CI Tests
    env:
      TZ: America/Los_Angeles
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - run: sudo apt-get update
      - name: Install additional dependencies
        run: sudo apt-get install -y gettext cmake libxslt-dev xsltproc ninja-build libboost-all-dev libgtk-3-dev guile-2.2-dev libgwengui-gtk3-dev libaqbanking-dev libofx-dev libdbi-dev libdbd-sqlite3 libwebkit2gtk-4.0-dev  googletest
      - name: Install language packs.
        run: sudo apt-get --reinstall install -y language-pack-en language-pack-fr
      - run: |
          echo "ROOT_DIR=$GITHUB_WORKSPACE/.." >> $GITHUB_ENV
      - name: Create Directories
        run: |
          pwd
          mkdir $ROOT_DIR/inst
          mkdir build
      - name: Configure GnuCash
        run: |
          cd build
          cmake -G Ninja -DWITH_PYTHON=ON -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/inst $GITHUB_WORKSPACE
      - name: Build and Test GnuCash
        run: |
          cd build
          ninja
          ninja distcheck
        env:
          CTEST_OUTPUT_ON_FAILURE: On
      - uses: actions/upload-artifact@v4
        if: failure()
        with:
          name: TestLog
          path: ${{ github.workspace }}/build/Testing/Temporary/LastTest.log
  ci_tests_ASAN:
    runs-on: ubuntu-latest
    name: Address Sanitizer CI Tests
    continue-on-error: true
    env:
      TZ: America/Los_Angeles
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - run: sudo apt-get update
      - name: Install additional dependencies
        run: sudo apt-get install -y gettext cmake libxslt-dev xsltproc ninja-build libboost-all-dev libgtk-3-dev guile-2.2-dev libgwengui-gtk3-dev libaqbanking-dev libofx-dev libdbi-dev libdbd-sqlite3 libwebkit2gtk-4.0-dev  googletest
      - name: Install language packs.
        run: sudo apt-get --reinstall install -y language-pack-en language-pack-fr
      - run: |
          echo "ROOT_DIR=$GITHUB_WORKSPACE/.." >> $GITHUB_ENV
      - name: Create Directories
        run: |
          pwd
          mkdir $ROOT_DIR/inst
          mkdir build
      - name: Configure GnuCash
        run: |
          cd build
          cmake -G Ninja -DWITH_PYTHON=ON -DCMAKE_INSTALL_PREFIX=$ROOT_DIR/inst $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Asan
      - name: Build and Test GnuCash
        run: |
          cd build
          ninja
          ninja check
        env:
          CTEST_OUTPUT_ON_FAILURE: On
      - uses: actions/upload-artifact@v4
        if: failure()
        with:
          name: TestLog
          path: ${{ github.workspace }}/build/Testing/Temporary/LastTest.log
