view .github/workflows/codeql-analysis.yaml @ 33508:1d0365c531a1 default tip

workspace view column width only stored by header state (bug #65030) * gui-preferences-ws.h: remove obsolete settings keys * workspace-view.cc (workspace_view::workspace_view): initialize new class variable, do not restore header state here; (workspace_view::notice_settings): save current header state if it is not the first run where the header would be the default one, do not read column visibility from settings file, restore header state after other settings are updated; (workspace_view::header_contextmenu_requested): get column visibility from QTableView, not from settings; (workspace_view::toggle_header): toggle current visibility, which is determined from QTableView, not from settings; * workspace-view.h: new class variable m_first
author Torsten Lilge <ttl-octave@mailbox.org>
date Thu, 02 May 2024 06:44:38 +0200
parents 6dd11018edcf
children
line wrap: on
line source

name: "CodeQL"

on:
  schedule:
    # Run job every Monday and Thursday at 16:30 UTC
    - cron: '30 16 * * 1,4'

jobs:
  ubuntu:
    name: CodeQL analysis (Ubuntu)
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        # Override automatic language detection by changing the below list
        # Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
        language: ['cpp']
        # Learn more...
        # https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection

    steps:
      - name: checkout repository
        uses: actions/checkout@v4

      - name: install dependencies
        run: |
          sudo apt -qq update
          sudo apt install -y autoconf automake bison dvipng epstool fig2dev \
            flex g++ gcc gfortran gnuplot-x11 gperf gzip icoutils \
            libarpack2-dev libblas-dev libcurl4-gnutls-dev libfftw3-dev \
            libfltk1.3-dev libfontconfig1-dev libfreetype6-dev \
            libgl1-mesa-dev libgl2ps-dev libglpk-dev libgraphicsmagick++1-dev \
            libhdf5-dev liblapack-dev libosmesa6-dev libpcre2-dev \
            libqhull-dev libqscintilla2-qt5-dev libqrupdate-dev \
            libreadline-dev librsvg2-bin libsndfile1-dev libsuitesparse-dev \
            libsundials-dev libtool libxft-dev make openjdk-8-jdk \
            perl portaudio19-dev pstoedit qtbase5-dev qttools5-dev \
            qttools5-dev-tools rapidjson-dev rsync tar zlib1g-dev

      - name: bootstrap
        run: ./bootstrap

      - name: configure
        run: |
          mkdir .build
          cd .build && ../configure \
            CPPFLAGS="-I/usr/include/hdf5/serial -I/usr/include/suitesparse" \
            LDFLAGS="-L/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/hdf5/serial" \
            --disable-docs

      - name: initialize CodeQL
        # Initialize the CodeQL tools for scanning.
        uses: github/codeql-action/init@v3
        with:
          languages: ${{ matrix.language }}
          # If you wish to specify custom queries, you can do so here or in a config file.
          # By default, queries listed here will override any specified in a config file.
          # Prefix the list here with "+" to use these queries and those in the config file.
          # queries: ./path/to/local/query, your-org/your-repo/queries@main

      - name: build
        run: make -C ./.build all -j2 V=1

      - name: perform CodeQL analysis
        uses: github/codeql-action/analyze@v3


  windows:
    name: CodeQL analysis (Windows)
    runs-on: windows-2019

    defaults:
      run:
        # Use MSYS2 as default shell
        shell: msys2 {0}

    strategy:
      fail-fast: false
      matrix:
        # Override automatic language detection by changing the below list
        # Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
        language: ['cpp']
        # Learn more...
        # https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
        msystem: ['MINGW64']
        include:
          - msystem: 'MINGW64'
            target-prefix: 'mingw-w64-x86_64'
            target-triplet: 'x86_64-w64-mingw32'

    env:
      CHERE_INVOKING: 1
      TARGET_TRIPLET:  ${{ matrix.target-triplet }}
      # perl uses cmd shell by default
      PERL5SHELL: bash -l -c

    steps:
      - uses: msys2/setup-msys2@v2
        with:
          update: true

          # Use pre-installed version to save disc space on partition with source.
          # We need that space for building.
          release: false

          # The packages are listed in (alphabetically sorted) blocks:
          # The first block is for mandatory dependencies.
          # The second block is for optional dependencies needed when building from a release tarball.
          # The third block is for additional dependencies needed when building from a repository checkout.
          install: >-
            base-devel
            ${{ matrix.target-prefix }}-autotools
            ${{ matrix.target-prefix }}-cc
            ${{ matrix.target-prefix }}-gcc-fortran
            ${{ matrix.target-prefix }}-gperf
            ${{ matrix.target-prefix }}-lapack
            ${{ matrix.target-prefix }}-openblas
            ${{ matrix.target-prefix }}-pcre2

            ${{ matrix.target-prefix }}-arpack
            ${{ matrix.target-prefix }}-curl
            ${{ matrix.target-prefix }}-fftw
            ${{ matrix.target-prefix }}-fltk
            ${{ matrix.target-prefix }}-gl2ps
            ${{ matrix.target-prefix }}-glpk
            ${{ matrix.target-prefix }}-ghostscript
            ${{ matrix.target-prefix }}-gnuplot
            ${{ matrix.target-prefix }}-graphicsmagick
            ${{ matrix.target-prefix }}-hdf5
            ${{ matrix.target-prefix }}-libsndfile
            ${{ matrix.target-prefix }}-portaudio
            ${{ matrix.target-prefix }}-qhull
            ${{ matrix.target-prefix }}-qrupdate
            ${{ matrix.target-prefix }}-qscintilla
            ${{ matrix.target-prefix }}-qt5-base
            ${{ matrix.target-prefix }}-qt5-imageformats
            ${{ matrix.target-prefix }}-qt5-svg
            ${{ matrix.target-prefix }}-qt5-tools
            ${{ matrix.target-prefix }}-rapidjson
            ${{ matrix.target-prefix }}-suitesparse
            ${{ matrix.target-prefix }}-sundials

            git
            ${{ matrix.target-prefix }}-ccache
            ${{ matrix.target-prefix }}-icoutils
            ${{ matrix.target-prefix }}-librsvg
            texinfo

          msystem: ${{ matrix.msystem }}

      - name: checkout repository
        uses: actions/checkout@v4

      - name: bootstrap
        run: ./bootstrap

      - name: configure
        # configure sometimes hangs while compiling 32bit Fortran.
        # It should take much less than 30 minutes. Cancel the step if it takes longer.
        timeout-minutes: 30
        # FIXME: Fix building with Java support. Override JAVA_HOME for now.
        # FIXME: How do we get a working TeX environment in MSYS2? Disable building the documentation for now.
        # Linking with ncurses fails. Use termcap library instead.
        run: |
          mkdir .build
          cd .build && ../configure \
            JAVA_HOME="" \
            --disable-docs \
            ac_cv_search_tputs=-ltermcap

      - name: initialize CodeQL
        # Initialize the CodeQL tools for scanning.
        uses: github/codeql-action/init@v3
        with:
          languages: ${{ matrix.language }}
          # If you wish to specify custom queries, you can do so here or in a config file.
          # By default, queries listed here will override any specified in a config file.
          # Prefix the list here with "+" to use these queries and those in the config file.
          # queries: ./path/to/local/query, your-org/your-repo/queries@main

      - name: build
        # Spawning processes seems to have a big overhead on this platform.
        # Use a somewhat larger number of parallel processes to compensate for that.
        run: make -C ./.build all -j8 V=1

      - name: perform CodeQL analysis
        uses: github/codeql-action/analyze@v3