Skip to content

Commit

Permalink
ci: add srpm generation
Browse files Browse the repository at this point in the history
  • Loading branch information
Nicholas Sielicki committed Aug 15, 2024
1 parent 32daa37 commit 26016dd
Show file tree
Hide file tree
Showing 5 changed files with 126 additions and 1 deletion.
19 changes: 19 additions & 0 deletions .github/workflows/srpm.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: generate SRPM
on: [push, pull_request]
jobs:
srpm:
runs-on: ubuntu-latest
container:
image: fedora:rawhide
options: --privileged
steps:
- run: dnf install -y packit git nodejs
- uses: actions/checkout@v4
- run: git config --global --add safe.directory /__w/aws-ofi-nccl/aws-ofi-nccl
- run: packit srpm
- uses: actions/upload-artifact@v4
with:
name: "libnccl-net-ofi.src.rpm"
path: "*.src.rpm"
if-no-files-found: 'error'
compression-level: '0'
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -75,3 +75,5 @@ m4/lt~obsolete.m4
.idea/
.devenv/
.direnv
*.src.rpm
dist/*.t*gz
21 changes: 21 additions & 0 deletions .packit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
# vi:ts=2 sw=2 et:
#
# Docs: https://packit.dev/docs/


srpm_build_deps:
- git

actions:
get-current-version:
- bash -c "cat configure.ac | grep -i AC_INIT | cut -d'[' -f3 | cut -d']' -f1"
create-archive:
- bash -c "git archive --prefix=libnccl-net-ofi/ --format=tgz --output=./dist/libnccl-net-ofi_${PACKIT_PROJECT_VERSION}.tar.gz HEAD src/ include/ doc/ m4/ tests/ topology/ configure.ac Makefile.am LICENSE NOTICE"
- bash -c "echo dist/libnccl-net-ofi_${PACKIT_PROJECT_VERSION}.tar.gz"

specfile_path: dist/libnccl-net-ofi.spec
upstream_package_name: libnccl-net-ofi
downstream_package_name: libnccl-net-ofi
release_suffix: "{PACKIT_PROJECT_BRANCH}"
update_release: false
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#

# Initialization
AC_INIT([aws-ofi-nccl], [GitHub-dev], [al-ofi-nccl-team@amazon.com], , [http://github.com/aws/aws-ofi-nccl])
AC_INIT([aws-ofi-nccl], [1.11.0pre], [al-ofi-nccl-team@amazon.com], , [http://github.com/aws/aws-ofi-nccl])
AC_PREREQ([2.69])
AC_CONFIG_SRCDIR([src/nccl_ofi_net.c])
AC_CONFIG_AUX_DIR([build-aux])
Expand Down
83 changes: 83 additions & 0 deletions dist/libnccl-net-ofi.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Whether to build with cuda support. Default: on if neuron
%if "%{with_cuda}" == "1" && "%{with_neuron}" == "1"
%{error:Neuron and CUDA must not be enabled together}
%endif

%if "%{with_cuda}" == "0" && "%{with_neuron}" == "0"
%{error:One of Neuron or CUDA must be enabled}
%endif

%if "%{with_cuda}" == "1"
%{!?target: %global target nccl}
%endif
%if "%{with_neuron}" == "1"
%{!?target: %global target nccom}
%endif

%global pname_base lib%{!?with_neuron:nccl}%{?with_neuron:nccom}-net-ofi
%global pname %{pname_base}%{?with_platform_aws:-aws}

%if "%{with_platform_aws}"
%global _prefix /opt/amazon/%{pname_base}
%endif

# (CUDA only) what toolkit package to declare a build dependency on. Default: 12-6
%{!?_cuda_toolkit_version: %global _cuda_toolkit_version 12-6}

Name: %{pname}
Version: 1.11.0pre
Release: 0%{?dist}
Summary: NCCL + libfabric compatibility layer
License: Apache-2.0
URL: https://github.com/aws/aws-ofi-nccl
Source0: libnccl-net-ofi_placeholder.tar.gz
%if "%{_vendor}" == "debbuild"
Group: devel
%else
Group: Development/Tools%{?suse_version:/Building}
BuildRequires: hwloc-devel
BuildRequires: libfabric-devel
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
%if "0%{?with_cuda:1}"
BuildRequires: cuda-cudart-devel-%{_cuda_toolkit_version}
%endif
%endif
Requires: hwloc
Requires: libfabric%{?with_platform_aws:-aws}
%description
This is a plugin which lets EC2 developers use libfabric as network provider while running NCCL applications.

%prep
%setup -n libnccl-net-ofi
%build
autoreconf -ivf
%configure \
--prefix="%{_prefix}" \
%if "0%{?with_cuda:1}"
--with-cuda=/usr/local/cuda-12 \
--enable-neuron=no \
%else
--with-cuda=no \
--enable-neuron=yes \
%endif
--disable-tests \
--with-mpi=no \
%if "0%{?with_platform_aws:1}"
--enable-platform-aws
%else
--disable-platform-aws
%endif

%install
%make_install
%files
%{_libdir}/*.so
%{_datadir}/aws-ofi-nccl/xml/*.xml
%license LICENSE NOTICE
%doc

%changelog
* Thu Aug 08 2024 Nicholas Sielicki <nslick@amazon.com>
Initial Package

0 comments on commit 26016dd

Please sign in to comment.