# Run less frequently used OSes and checks.
name: Nightly

on:
  workflow_dispatch:
  schedule:
    # run this job at 23:00 UTC every other day
    - cron:  '0 23 */2 * *'
  push:
    tags:
      - '*'

env:
  GITHUB_REPO:    pmem/pmdk
  DOCKER_REPO:    ghcr.io/pmem/pmdk
  HOST_WORKDIR:   /home/runner/work/pmdk/pmdk
  WORKDIR:        utils/docker
  PMDK_CC:        gcc
  PMDK_CXX:       g++
  SRC_CHECKERS:   0

jobs:
  in-tree:
    name: In-tree
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        CONFIG: [
                 "OS=ubuntu OS_VER=22.04",
                 "OS=opensuse-leap OS_VER=15",
                 "OS=rockylinux OS_VER=8",
                 "OS=rockylinux OS_VER=9",
                ]
        TEST_BUILD: [debug, nondebug]
    steps:
      - name: Clone the git repo
        uses: actions/checkout@v4
        with:
          fetch-depth: 50

      - name: Get system information
        run: ./$WORKDIR/get-system-info.sh

      - name: Pull the image
        run: cd $WORKDIR && ${{ matrix.CONFIG }} ./pull-or-rebuild-image.sh

      - name: Run the build
        run: cd $WORKDIR && ${{ matrix.CONFIG }}
          TEST_BUILD=${{ matrix.TEST_BUILD }} ./build-CI.sh


  packaging:
    name: Packaging
    needs: in-tree
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        CONFIG: [
                 "OS=ubuntu OS_VER=22.04 PMDK_CC=clang PMDK_CXX=clang++",
                 "OS=ubuntu OS_VER=22.04",
                 "OS=opensuse-leap OS_VER=15",
                 "OS=rockylinux OS_VER=8",
                 "OS=rockylinux OS_VER=9",
                ]
    steps:
      - name: Clone the git repo
        uses: actions/checkout@v4
        with:
          fetch-depth: 50

      - name: Get system information
        run: ./$WORKDIR/get-system-info.sh

      - name: Pull the image
        run: cd $WORKDIR && ${{ matrix.CONFIG }} ./pull-or-rebuild-image.sh

      - name: Run the build
        env:
          MAKE_PKG: 1
          VALGRIND: 0
          EXPERIMENTAL: 0
          NDCTL_ENABLE: y
        run: cd $WORKDIR && ${{ matrix.CONFIG }} ./build-CI.sh
