From e2e97d8e6d64f888c98be7a4bc3a62d6bd0dd6e5 Mon Sep 17 00:00:00 2001 From: Eduardo Trujillo <ed@chromabits.com> Date: Fri, 23 Dec 2022 15:40:05 -0800 Subject: [PATCH] feat(ci): Add experimental RPM builds --- .gitlab-ci.yml | 19 ++++++++++- rust-nm-reactor.spec | 78 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 rust-nm-reactor.spec diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 11b3af7..27e744f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -109,4 +109,21 @@ release: assets: links: - name: 'Linux (amd64)' - url: "${PACKAGE_REGISTRY_URL}/${LINUX_AMD64_BINARY}" \ No newline at end of file + url: "${PACKAGE_REGISTRY_URL}/${LINUX_AMD64_BINARY}" + +fedora: + stage: release + # rules: + # - if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+$/' + needs: + - job: rust-nightly + image: docker.io/library/fedora:37 + script: + - dnf install -y rust cargo rpm-build rpmdevtools rust-packaging dnf-plugins-core curl + - rpmdev-setuptree + - cp ./rust-nm-reactor.spec ~/rpmbuild/SPECS/ + - spectool -g -R ~/rpmbuild/SPECS/rust-nm-reactor.spec + - dnf builddep -y ~/rpmbuild/SPECS/rust-nm-reactor.spec + - rpmbuild -ba ~/rpmbuild/SPECS/rust-nm-reactor.spec + - | + for file in ~/rpmbuild/RPMS/**/*.rpm; curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ${file} ${PACKAGE_REGISTRY_URL}/$(basename $file); done diff --git a/rust-nm-reactor.spec b/rust-nm-reactor.spec new file mode 100644 index 0000000..ec1913f --- /dev/null +++ b/rust-nm-reactor.spec @@ -0,0 +1,78 @@ +# Initially generated by rust2rpm 23. Manually modified to support building +# using crates not available from crates.io. As a result, this package cannot +# be built offline. It is primarily intended for CI builds. +%bcond_without check + +%global crate nm-reactor + +Name: rust-nm-reactor +Version: 0.1.1 +Release: %autorelease +Summary: NetworkManager reactor + +License: BSD-3-Clause +URL: https://gitlab.chromabits.com/etcinit/nm-reactor +Source: https://gitlab.chromabits.com/etcinit/nm-reactor/-/archive/%{version}/nm-reactor-%{version}.tar.gz + +BuildRequires: rust-packaging >= 21 +BuildRequires: dbus-devel + +%global _description %{expand: +NetworkManager reactor. If-this-then-that for NetworkManager.} + +%description %{_description} + +%package -n %{crate} +Summary: %{summary} + +%description -n %{crate} %{_description} + +%files -n %{crate} +%license LICENSE +%doc README.md +%{_bindir}/nm-reactor + +%prep +%autosetup -n %{crate}-%{version_no_tilde} -p1 +set -eu +%{__mkdir} -p .cargo + +cat > .cargo/config << EOF +[build] +rustc = "%{__rustc}" +rustdoc = "%{__rustdoc}" + +[env] +CFLAGS = "%{build_cflags}" +CXXFLAGS = "%{build_cxxflags}" +LDFLAGS = "%{build_ldflags}" + +[install] +root = "%{buildroot}%{_prefix}" + +[term] +verbose = true + +[source] + +[source.local-registry] +directory = "%{cargo_registry}" +EOF + +%{__rm} -f Cargo.lock +%{__rm} -f Cargo.toml.orig + +%build +%cargo_build + +%install +%cargo_install + +%if %{with check} +%check +%cargo_test +%endif + +%changelog +%autochangelog + -- GitLab