Skip to content

Commit

Permalink
ci: add srpm generation
Browse files Browse the repository at this point in the history
  • Loading branch information
aws-nslick committed Aug 28, 2024
1 parent 3ec37f8 commit 4d49dc0
Show file tree
Hide file tree
Showing 7 changed files with 137 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'
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -75,3 +75,4 @@ m4/lt~obsolete.m4
.idea/
.devenv/
.direnv
*.src.rpm
20 changes: 20 additions & 0 deletions .packit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
# vi:ts=2 sw=2 et:
#
# Docs: https://packit.dev/docs/


srpm_build_deps:
- git

actions:
get-current-version:
- bash -c "cat .version"
create-archive:
- bash -c "git archive --prefix=libnccl-net-ofi/ --format=tgz --output=libnccl-net-ofi_${PACKIT_PROJECT_VERSION}.tar.gz HEAD src/ include/ doc/ m4/ tests/ topology/ configure.ac Makefile.am LICENSE NOTICE .version && echo libnccl-net-ofi_${PACKIT_PROJECT_VERSION}.tar.gz"

specfile_path: libnccl-net-ofi.spec
upstream_package_name: libnccl-net-ofi
downstream_package_name: libnccl-net-ofi
release_suffix: "{PACKIT_PROJECT_BRANCH}"
update_release: false
1 change: 1 addition & 0 deletions .version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.12.0pre
1 change: 1 addition & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = include src topology tests
EXTRA_DIST = \
.version \
autogen.sh \
CODE_OF_CONDUCT.md \
CONTRIBUTING.md \
Expand Down
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], [[email protected]], , [http://github.com/aws/aws-ofi-nccl])
AC_INIT([aws-ofi-nccl], m4_normalize(m4_include([.version])), [[email protected]], , [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
94 changes: 94 additions & 0 deletions libnccl-net-ofi.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# 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: null
Release: 0%{dist}
Summary: NCCL + libfabric compatibility layer
License: Apache-2.0
URL: https://github.com/aws/aws-ofi-nccl
Source0: null
%if "%{_vendor}" == "debbuild"
Group: devel
%else
Group: Development/Tools%{?suse_version:/Building}
BuildRequires: hwloc-devel
BuildRequires: libfabric-%{?with_platform_aws:aws-}devel
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
%if "%{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
%build
autoreconf -ivf
%configure \
--prefix="%{_prefix}" \
--disable-tests \
--with-mpi=no \
%if "%{with_cuda}" == "1"
--with-cuda=/usr/local/cuda-12 \
--enable-neuron=no \
%else
--with-cuda=no \
--enable-neuron=yes \
%endif
%if "%{with_platform_aws}" == "1"
--enable-platform-aws \
--with-libfabric=/opt/amazon/efa
%else
--disable-platform-aws
%endif
%make_build


%install
%make_install
find %{buildroot} -name '*.la' -exec rm -f {} ';'
%ldconfig_scriptlets


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


%changelog
* Thu Aug 08 2024 Nicholas Sielicki <[email protected]>
Initial Package

0 comments on commit 4d49dc0

Please sign in to comment.