Support building directly from git #418
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: 'build and installation tests' | |
on: | |
pull_request: | |
branches: ['master'] | |
paths-ignore: | |
- 'AUTHORS' | |
- 'COPYING' | |
- 'NEWS' | |
- 'README.md' | |
- 'doc/**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
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 | |
- 'registry.fedoraproject.org/fedora:36' | |
- 'registry.fedoraproject.org/fedora:rawhide' | |
# OpenSUSE | |
# leap < 15.2 doesn't contain git-lfs which causes actions/checkout to fail | |
- 'registry.opensuse.org/opensuse/leap:15.3' | |
- 'registry.opensuse.org/opensuse/leap:15.4' | |
- 'registry.opensuse.org/opensuse/leap:15.5' | |
- 'registry.opensuse.org/opensuse/tumbleweed' | |
# CentOS Stream | |
- 'quay.io/centos/centos:stream9' | |
container: | |
image: ${{ matrix.container }} | |
steps: | |
- name: 'Install packages (OpenSUSE)' | |
if: ${{ contains(matrix.container, '/opensuse/') }} | |
run: | | |
zypper -n modifyrepo --disable repo-openh264 || : | |
zypper -n --gpg-auto-import-keys refresh | |
zypper -n lr --details | |
zypper -n dist-upgrade | |
zypper -n install git-lfs rpm-build | |
- name: 'Install packages (Fedora/CentOS)' | |
if: ${{ contains(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: ${{ contains(matrix.container, '/opensuse/') }} | |
run: | | |
zypper --non-interactive install $(rpmspec -q --buildrequires contrib/osc.spec) | |
- name: 'Install build dependencies (Fedora/CentOS)' | |
if: ${{ contains(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: ${{ contains(matrix.container, '/opensuse/') }} | |
run: | | |
zypper --non-interactive install --force --allow-vendor-change --allow-unsigned-rpm ./contrib/*/*.rpm | |
- name: 'Install build RPMs (Fedora/CentOS)' | |
if: ${{ contains(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: | | |
pip config set global.break-system-packages 1 | |
pip3 install . | |
- name: 'Run installed osc' | |
run: | | |
osc --help |