Fix local building in git projects #774
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' | ||
needs: unit-ro | ||
Check failure on line 20 in .github/workflows/build-install.yaml GitHub Actions / build and installation testsInvalid workflow file
|
||
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:39' | ||
- 'registry.fedoraproject.org/fedora:40' | ||
- '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/leap:15.6' | ||
- '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 | ||
rpm -q dnf5 >/dev/null || dnf -y install dnf-plugins-core || : | ||
rpm -q dnf5 >/dev/null && dnf -y install dnf5-plugins || : | ||
- 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: | | ||
RHEL_VERSION=$(rpm --eval '%{?rhel}') | ||
[ -n "${RHEL_VERSION}" ] && rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-${RHEL_VERSION}.noarch.rpm | ||
[ -n "${RHEL_VERSION}" ] && /usr/bin/crb enable | ||
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 | ||
virtualenv: | ||
name: 'virtualenv install test' | ||
runs-on: 'ubuntu-latest' | ||
strategy: | ||
fail-fast: false | ||
steps: | ||
- name: 'Install packages' | ||
run: | | ||
sudo apt-get -y update | ||
sudo apt-get -y --no-install-recommends install git python3-pip python3-rpm python3-virtualenv | ||
- uses: actions/checkout@v3 | ||
- name: 'Initialize virtualenv' | ||
run: | | ||
python3 -m venv .env3 | ||
source .env3/bin/activate | ||
pip3 install . | ||
- name: 'Run installed osc' | ||
run: | | ||
source .env3/bin/activate | ||
osc --help |