name: build Linux packages with Open Build Service on: pull_request_target: branches: [ "master" ] env: CARGO_TERM_COLOR: always jobs: approve-obs-build: name: "approval" runs-on: ubuntu-latest steps: - name: Approve run: echo OBS build CI test runs need to be approved by a maintainer. build-obs-binary: environment: name: obs-build-env strategy: matrix: include: - repo: Fedora_39 spec: librashader.spec can_fail: true name: Fedora 39 (.rpm) - repo: xUbuntu_23.10 spec: librashader.spec can_fail: true name: Ubuntu 23.10 (.deb) - repo: Arch spec: PKGBUILD can_fail: false name: Arch (PKGBUILD) runs-on: ubuntu-latest needs: [approve-obs-build] continue-on-error: ${{ matrix.can_fail }} name: ${{ matrix.name }} container: image: fedora:39 options: --privileged steps: - name: Checkout repository uses: actions/checkout@v4 - 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>)/${{ 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 }}