debian-forge-composer/.github/workflows/tests.yml
Martin Sehnoutka 7ff15e1fc2 workflow: enable updates-testing repo when installing osbuild
The source of issue here is that our release cycles are synchronized and
if we want to use the latest released osbuild we need to wait for the
bodhi process. It makes sense that we don't want to use latest osbuild
from git master but we should be confident enough in the version we
submit to bodhi.

Using the version from updates-testing therefore fixes the issue with
synchronization and avoids using unreleased versions.
2020-04-14 19:12:44 +02:00

135 lines
3.8 KiB
YAML

name: Tests
# NOTE(mhayden): Restricting branches prevents jobs from being doubled since
# a push to a pull request triggers two events.
on:
pull_request:
branches:
- "*"
push:
branches:
- master
jobs:
lint:
name: "🛃 Checks"
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.13
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Check that source has been prepared
run: |
./tools/prepare-source.sh
if [ -n "$(git status --porcelain)" ]; then
echo
echo "Please include these changes in your branch: "
git status -vv
exit "1"
else
exit "0"
fi
- name: Install golangci-lint
run: curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s -- -b $(go env GOPATH)/bin v1.23.7
- name: Run golangci-lint
run: $(go env GOPATH)/bin/golangci-lint run
- name: Run unit tests
run: go test -v -race -covermode atomic -coverprofile=coverage.txt ./...
- name: Send coverage to codecov.io
run: bash <(curl -s https://codecov.io/bash)
old_rpm_build:
name: "📦 RPM (golang-github-osbuild-composer)"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
fedora_release: ["31"]
container:
image: "quay.io/osbuild/osbuild-fedora${{ matrix.fedora_release }}:latest"
steps:
- name: "📥 Prepare container"
run: |
echo "fastestmirror=1" >> /etc/dnf/dnf.conf
echo "install_weak_deps=0" >> /etc/dnf/dnf.conf
rm -fv /etc/yum.repos.d/fedora*modular*
dnf -y upgrade
dnf -y install dnf-plugins-core findutils git make rpm-build rpmdevtools
- name: "🗄️ Clone the repository"
uses: actions/checkout@v2
- name: "🛒 Install RPM build dependencies"
run: dnf -y builddep golang-github-osbuild-composer.spec
- name: "🛠️ Build RPMs"
run: |
mkdir rpms
make old-srpm
cp -av rpmbuild/SRPMS/*.rpm rpms/
make old-rpm
cp -av rpmbuild/RPMS/*/*.rpm rpms/
- name: "📤 Upload artifacts"
uses: actions/upload-artifact@v1
with:
name: rpms
path: rpms/
- name: "🔎 Test RPM installation"
run: dnf -y install $(ls rpms/*.x86_64.rpm)
rpm_build:
name: "📦 RPM (osbuild-composer)"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
fedora_release: ["32", "33"]
container:
image: "quay.io/osbuild/osbuild-fedora${{ matrix.fedora_release }}:latest"
steps:
- name: "📥 Prepare container"
run: |
echo "fastestmirror=1" >> /etc/dnf/dnf.conf
echo "install_weak_deps=0" >> /etc/dnf/dnf.conf
rm -fv /etc/yum.repos.d/fedora*modular*
dnf -y upgrade
dnf -y install dnf-plugins-core findutils git make rpm-build rpmdevtools
- name: "🗄️ Clone the repository"
uses: actions/checkout@v2
- name: "🧱 Pre-install osbuild from updates-testing repo"
run: dnf -y --enablerepo=updates-testing install osbuild
- name: "🛒 Install RPM build dependencies"
run: dnf -y builddep osbuild-composer.spec
- name: "🛠️ Build RPMs"
run: |
mkdir rpms
make srpm
cp -av rpmbuild/SRPMS/*.rpm rpms/
make rpm
cp -av rpmbuild/RPMS/*/*.rpm rpms/
- name: "📤 Upload artifacts"
uses: actions/upload-artifact@v1
with:
name: rpms
path: rpms/
- name: "🔎 Test RPM installation"
run: dnf -y install $(ls rpms/*.x86_64.rpm)