# Builds the project with alternative tools.

name: Build-extra

on:
  workflow_dispatch:
  push:
    branches-ignore:
      - 'dependabot/**'
    paths:
      - 'm4/**'
      - 'src/**.c'
      - 'src/**.h'
      - 'src/**.mk'
      - 'src/**Makefile'
      - .github/workflows/build-extra.yml
      - Makefile
      - ci/printenv.sh
      - config.mk.in
      - config.sh.in
      - configure
      - configure.ac
  pull_request:
    paths:
      - 'm4/**'
      - 'src/**.c'
      - 'src/**.h'
      - 'src/**.mk'
      - 'src/**Makefile'
      - .github/workflows/build-extra.yml
      - Makefile
      - ci/printenv.sh
      - config.mk.in
      - config.sh.in
      - configure
      - configure.ac

permissions:  # added using https://github.com/step-security/secure-workflows
  contents: read

jobs:
  build-gcc:
    runs-on: ubuntu-22.04
    timeout-minutes: 10
    steps:
    - name: Harden Runner
      uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d
      with:
        egress-policy: block
        allowed-endpoints: >
          azure.archive.ubuntu.com:80
          github.com:443
          packages.microsoft.com:443
          ppa.launchpadcontent.net:443
    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
    - name: update package information
      run: sudo apt-get update -qy
    - name: install dependencies
      run: >
        sudo apt-get install -qy
        gcc-12 libapparmor-dev libselinux1-dev
    - name: print env
      run: ./ci/printenv.sh
    - name: configure
      run: >
        ./configure CC=gcc-12
        --prefix=/usr --enable-fatal-warnings --enable-analyzer
        --enable-apparmor --enable-selinux
        || (cat config.log; exit 1)
    - name: make
      run: make
    - name: make install
      run: sudo make install
    - name: make installcheck
      run: make installcheck

  build-clang:
    runs-on: ubuntu-22.04
    timeout-minutes: 10
    steps:
    - name: Harden Runner
      uses: step-security/harden-runner@fe104658747b27e96e4f7e80cd0a94068e53901d
      with:
        egress-policy: block
        allowed-endpoints: >
          azure.archive.ubuntu.com:80
          github.com:443
          packages.microsoft.com:443
          ppa.launchpadcontent.net:443
    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
    - name: update package information
      run: sudo apt-get update -qy
    - name: install dependencies
      run: >
        sudo apt-get install -qy
        libapparmor-dev libselinux1-dev
    - name: print env
      run: ./ci/printenv.sh
    - name: configure
      run: >
        ./configure CC=clang-14
        --prefix=/usr --enable-fatal-warnings
        --enable-apparmor --enable-selinux
        || (cat config.log; exit 1)
    - name: make
      run: make
    - name: make install
      run: sudo make install
    - name: make installcheck
      run: make installcheck
