name: build Linux packages with Open Build Service

on:
  pull_request:
    branches: [ "master" ]
env:
  CARGO_TERM_COLOR: always

jobs:
  build-obs-binary:
    if: github.repository == 'SnowflakePowered/librashader'
    strategy:
      matrix:
        include:
          - repo: Fedora_39
            spec: librashader.spec
          - repo: xUbuntu_23.10
            spec: librashader.spec
          - repo: Arch
            spec: PKGBUILD
    runs-on: ubuntu-latest
    container: 
      image: fedora:39
      options: --privileged
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3
      - name: Install OSC and dependencies
        env:
          OBS_CONFIG: ${{ secrets.OBS_CONFIG }}
        run: |
          sudo dnf install -y osc obs-service-obs_scm obs-service-cargo_vendor cargo python3-zstandard
          mkdir -p ~/.config/osc
          echo "$OBS_CONFIG" > ~/.config/osc/oscrc
      - name: Checkout Open Build Service repository
        run: |
          osc co home:chyyran:librashader/librashader
      - name: Copy spec from repository
        run: |
          cp -r ./pkg/obs/ home:chyyran:librashader/librashader/
          sed -r -i 's/(<param name="revision">)(.+)(<\/param>)/<param name="revision">${{ github.sha }}<\/param>/g' home:chyyran:librashader/librashader/_service
      - name: Vendor sources for Open Build Service
        run: |
          cd home:chyyran:librashader/librashader/
          osc service mr
      - name: Build package
        run: |
          cd home:chyyran:librashader/librashader/
          osc build --no-verify --trust-all-projects ${{ matrix.repo }} x86_64 ${{ matrix.spec }}