name: 'build and installation tests' on: push: branches: ['master'] paths-ignore: - 'AUTHORS' - 'COPYING' - 'NEWS' - 'README.md' - 'doc/**' pull_request: branches: ['master'] paths-ignore: - 'AUTHORS' - 'COPYING' - 'NEWS' - 'README.md' - 'doc/**' jobs: rpmbuild: name: 'rpmbuild test' runs-on: 'ubuntu-latest' strategy: fail-fast: false matrix: # Testing per python-version using actions/setup-python is not possible, # because rpm doesn't exist on pypi and cannot be installed via pip on ubuntu. # That's why we're going to test on the target distros directly. container: # Fedora - 'fedora:36' - 'fedora:rawhide' # OpenSUSE # leap < 15.2 doesn't contain git-lfs which causes actions/checkout to fail - 'opensuse/leap:15.3' - 'opensuse/leap:15.4' - 'opensuse/tumbleweed' # CentOS Stream - 'quay.io/centos/centos:stream9' container: image: ${{ matrix.container }} steps: - name: 'Install packages (OpenSUSE)' if: ${{ startsWith(matrix.container, 'opensuse/') }} run: | zypper --non-interactive --gpg-auto-import-keys refresh zypper --non-interactive dist-upgrade zypper --non-interactive install git-lfs rpm-build - name: 'Install packages (Fedora/CentOS)' if: ${{ startsWith(matrix.container, 'fedora:') || contains(matrix.container, 'centos:') }} run: | dnf -y makecache dnf -y distro-sync dnf -y install git-lfs rpm-build dnf-plugins-core - uses: actions/checkout@v3 with: fetch-depth: 0 - name: 'Install build dependencies (OpenSUSE)' if: ${{ startsWith(matrix.container, 'opensuse/') }} run: | zypper --non-interactive install $(rpmspec -q --buildrequires contrib/osc.spec) - name: 'Install build dependencies (Fedora/CentOS)' if: ${{ startsWith(matrix.container, 'fedora:') || contains(matrix.container, 'centos:') }} run: | dnf -y builddep contrib/osc.spec - name: 'Build SRPM and RPMs' run: | git config --global --add safe.directory "$(pwd)" git remote add upstream https://github.com/openSUSE/osc.git git fetch upstream --tags --force ./contrib/build_rpm.py --srpm --rpm - name: 'Install built RPMs (OpenSUSE)' if: ${{ startsWith(matrix.container, 'opensuse/') }} run: | zypper --non-interactive install --force --allow-vendor-change --allow-unsigned-rpm ./contrib/*/*.rpm - name: 'Install build RPMs (Fedora/CentOS)' if: ${{ startsWith(matrix.container, 'fedora:') || contains(matrix.container, 'centos:') }} run: | dnf -y install ./contrib/*/*.rpm - name: 'Run installed osc' run: | osc --help pip: name: 'pip install test' runs-on: 'ubuntu-latest' strategy: fail-fast: false steps: - name: 'Install packages' run: | sudo apt-get -y update sudo apt-get -y upgrade sudo apt-get -y --no-install-recommends install git python3-pip python3-rpm - uses: actions/checkout@v3 - name: 'Install osc from pip' run: | pip3 install . - name: 'Run installed osc' run: | osc --help