on: [push]
jobs:

  alpine:
    container:
      image: ${{vars.DOCKER}}alpine:3.20
    steps:
    - name: spcd
      env:
        SPCD: ${{vars.SPCD}}
        SPCD_TXT_LOCALE: ${{vars.SPCD_TXT_LOCALE}}
      run: ${{vars.SPCD}}

    - run: spcd-check-project
    - run: spcd-build-project
    - run: spcd-browse-workspace

  debian:
    needs: alpine
    if: failure() || success()
    container:
      image: ${{vars.DOCKER}}debian:bookworm
    steps:
    - name: spcd
      env:
        SPCD: ${{vars.SPCD}}
        SPCD_SSH_HOSTS: ${{vars.SPCD_SSH_HOSTS}}
        SPCD_SSH_KEY: ${{secrets.SPCD_SSH_KEY}}
        SPCD_TXT_LOCALE: ${{vars.SPCD_TXT_LOCALE}}
      run: ${{vars.SPCD}}

    - run: spcd-check-project
    - run: spcd-build-project
    - run: spcd-browse-workspace
    - run: spcd-synchronize

  ubuntu:
    needs: debian
    if: failure() || success()
    container:
      image: ${{vars.DOCKER}}ubuntu:noble
    steps:
    - name: spcd
      env:
        SPCD: ${{vars.SPCD}}
        SPCD_TXT_LOCALE: ${{vars.SPCD_TXT_LOCALE}}
      run: ${{vars.SPCD}}

    - run: spcd-check-project
    - run: spcd-build-project
    - run: spcd-browse-workspace

  arch:
    needs: ubuntu
    if: failure() || success()
    container:
      image: ${{vars.DOCKER}}archlinux:base-20240818.0.255804
    steps:
    - name: spcd
      env:
        SPCD: ${{vars.SPCD}}
        SPCD_TXT_LOCALE: ${{vars.SPCD_TXT_LOCALE}}
      run: ${{vars.SPCD}}

    - run: spcd-check-project
    - run: spcd-build-project
    - run: spcd-browse-workspace

  opensuse:
    needs: arch
    if: failure() || success()
    container:
      image: ${{vars.DOCKER}}opensuse/leap:15.6
    steps:
    - name: spcd
      env:
        SPCD: ${{vars.SPCD}}
        SPCD_TXT_LOCALE: ${{vars.SPCD_TXT_LOCALE}}
      run: ${{vars.SPCD}}

    - run: spcd-check-project
    - run: spcd-build-project
    - run: spcd-browse-workspace

  fedora:
    needs: opensuse
    if: failure() || success()
    container:
      image: ${{vars.DOCKER}}fedora:40
    steps:
    - name: spcd
      env:
        SPCD: ${{vars.SPCD}}
        SPCD_TXT_LOCALE: ${{vars.SPCD_TXT_LOCALE}}
      run: ${{vars.SPCD}}

    - run: spcd-check-project
    - run: spcd-build-project
    - run: spcd-browse-workspace

  alma:
    needs: fedora
    if: failure() || success()
    container:
      image: ${{vars.DOCKER}}almalinux:9
    steps:
    - name: spcd
      env:
        SPCD: ${{vars.SPCD}}
        SPCD_TXT_LOCALE: ${{vars.SPCD_TXT_LOCALE}}
      run: ${{vars.SPCD}}

    - run: spcd-check-project
    - run: spcd-build-project
    - run: spcd-browse-workspace

  rocky:
    needs: alma
    if: failure() || success()
    container:
      image: ${{vars.DOCKER}}rockylinux:9
    steps:
    - name: spcd
      env:
        SPCD: ${{vars.SPCD}}
        SPCD_TXT_LOCALE: ${{vars.SPCD_TXT_LOCALE}}
      run: ${{vars.SPCD}}

    - run: spcd-check-project
    - run: spcd-build-project
    - run: spcd-browse-workspace