@@ -32,25 +32,25 @@ runs:
32
32
echo "HOME=$HOME" >> $GITHUB_ENV
33
33
fi
34
34
cd $HOME
35
-
35
+
36
36
# Free disk space by removing some unused system components
37
37
$SUDO rm -rf /usr/local/lib/android
38
38
$SUDO rm -rf /usr/share/dotnet
39
-
39
+
40
40
# Allocate a swapfile on Linux as it's not enabled by default. Needed for pytorch and mkl.
41
41
$SUDO fallocate -l 4GB /swapfile
42
42
$SUDO chmod 600 /swapfile
43
43
$SUDO mkswap /swapfile
44
44
$SUDO swapon /swapfile
45
-
45
+
46
46
mkdir -p .ccache
47
47
echo "max_size = 2.0G" > .ccache/ccache.conf
48
48
echo "hash_dir = false" >> .ccache/ccache.conf
49
49
echo "sloppiness = file_macro,include_file_ctime,include_file_mtime,pch_defines,time_macros" >> .ccache/ccache.conf
50
-
50
+
51
51
export ARCH=amd64
52
52
export PREFIX=x86_64-linux-gnu
53
- if [[ "$CI_DEPLOY_PLATFORM" == "linux-armhf " ]]; then
53
+ if [[ "$CI_DEPLOY_PLATFORM" == "linux-arm " ]]; then
54
54
export ARCH=armhf
55
55
export PREFIX=arm-linux-gnueabihf
56
56
export USERLAND_BUILDME="buildme"
@@ -84,79 +84,70 @@ runs:
84
84
fi
85
85
echo "ARCH=$ARCH" >> $GITHUB_ENV
86
86
echo "PREFIX=$PREFIX" >> $GITHUB_ENV
87
-
87
+
88
88
$SUDO dpkg --list
89
-
89
+
90
90
$SUDO apt-get update
91
91
$SUDO apt-get -y install gnupg
92
92
source /etc/os-release
93
93
export CODENAME=$UBUNTU_CODENAME
94
-
94
+
95
95
if [[ ! "$ARCH" == "amd64" ]]; then
96
- # https://github.com/actions/runner-images/issues/675
96
+ # https://github.com/actions/runner-images/issues/675
97
97
$SUDO gem install apt-spy2
98
98
$SUDO apt-spy2 check
99
99
$SUDO apt-spy2 fix --commit
100
100
$SUDO sed -i 's/azure\.//' /etc/apt/apt-mirrors.txt /etc/apt/sources.list
101
101
$SUDO cat /etc/apt/apt-mirrors.txt /etc/apt/sources.list
102
102
$SUDO apt-get update
103
-
104
- # https://github.com/actions/runner-images/issues/4589
103
+
104
+ # https://github.com/actions/runner-images/issues/4589
105
105
$SUDO apt-add-repository -y ppa:ondrej/php
106
106
$SUDO apt-get -y install ppa-purge
107
107
$SUDO ppa-purge -y ppa:ondrej/php
108
108
fi
109
-
109
+
110
110
if [[ "$ARCH" == "i386" ]]; then
111
111
$SUDO dpkg --add-architecture $ARCH
112
112
TOOLCHAIN="gcc-$PREFIX g++-$PREFIX gfortran-$PREFIX"
113
113
elif [[ ! "$ARCH" == "amd64" ]]; then
114
+ echo "Adding $ARCH architecture"
114
115
$SUDO dpkg --add-architecture $ARCH
115
116
$SUDO sed -i 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list
117
+ $SUDO sed -i 's/deb mirror/deb [arch=amd64] mirror/g' /etc/apt/sources.list
116
118
$SUDO echo deb [arch=$ARCH] http://ports.ubuntu.com/ubuntu-ports $CODENAME main restricted universe multiverse | $SUDO tee -a /etc/apt/sources.list
117
119
$SUDO echo deb [arch=$ARCH] http://ports.ubuntu.com/ubuntu-ports $CODENAME-updates main restricted universe multiverse | $SUDO tee -a /etc/apt/sources.list
118
120
$SUDO echo deb [arch=$ARCH] http://ports.ubuntu.com/ubuntu-ports $CODENAME-backports main restricted universe multiverse | $SUDO tee -a /etc/apt/sources.list
119
121
$SUDO echo deb [arch=$ARCH] http://ports.ubuntu.com/ubuntu-ports $CODENAME-security main restricted universe multiverse | $SUDO tee -a /etc/apt/sources.list
120
122
TOOLCHAIN="gcc-$PREFIX g++-$PREFIX gfortran-$PREFIX linux-libc-dev-$ARCH-cross binutils-multiarch"
121
123
fi
122
- # $SUDO echo deb [arch=amd64] https://ppa.launchpad.net/openjdk-r/ppa/ubuntu $CODENAME main | $SUDO tee -a /etc/apt/sources.list
123
- # $SUDO echo deb [arch=amd64] https://ppa.launchpad.net/deadsnakes/ppa/ubuntu $CODENAME main | $SUDO tee -a /etc/apt/sources.list
124
- # $SUDO apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EB9B1D8886F44E2A
125
- # $SUDO apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA6932366A755776
124
+ echo "sources.list:"
125
+ cat /etc/apt/sources.list
126
+ for f in /etc/apt/sources.list.d/*.list; do echo "$f:"; cat $f; done
126
127
$SUDO apt-get update
127
- $SUDO apt-get -y install gcc-multilib g++-multilib gfortran-multilib python3 python2.7 python3-minimal python2.7-minimal rpm libasound2-dev:$ARCH freeglut3-dev:$ARCH libfontconfig-dev:$ARCH libgtk2.0-dev:$ARCH libusb-dev:$ARCH libusb-1.0-0-dev:$ARCH libffi-dev:$ARCH libbz2-dev:$ARCH zlib1g-dev:$ARCH libxcb1-dev:$ARCH libpulse-dev:$ARCH
128
- $SUDO apt-get -y install pkg-config ccache clang $TOOLCHAIN openjdk-8-jdk ant python2 python3-pip swig git file wget unzip tar bzip2 gzip patch autoconf-archive autogen automake cmake make libtool bison flex perl nasm ragel curl libcurl4-openssl-dev libssl-dev libffi-dev libbz2-dev zlib1g-dev rapidjson-dev libdrm-dev libva -dev
129
-
128
+ $SUDO apt-get -y install gcc-multilib g++-multilib gfortran-multilib python3 python2.7 python3-minimal python2.7-minimal rpm libasound2-dev:$ARCH freeglut3-dev:$ARCH libfontconfig-dev:$ARCH libgtk2.0-dev:$ARCH libusb-dev:$ARCH libusb-1.0-0-dev:$ARCH libffi-dev:$ARCH libbz2-dev:$ARCH zlib1g-dev:$ARCH libxcb1-dev:$ARCH libpulse-dev:$ARCH libdrm-dev:$ARCH libva-dev:$ARCH
129
+ $SUDO apt-get -y install pkgconf ccache clang $TOOLCHAIN openjdk-8-jdk ant python2 python3-pip swig git file wget unzip tar bzip2 gzip patch autoconf-archive autogen automake cmake make libtool bison flex perl nasm ragel curl libcurl4-openssl-dev libssl-dev libffi-dev libbz2-dev zlib1g-dev rapidjson-dev
130
+
130
131
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
131
132
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
132
133
ln -sf $JAVA_HOME /usr/lib/jvm/default-java
133
134
find /usr/lib/jvm/default-java/
134
- # curl -LO https://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2-linux-x86_64.tar.gz
135
- curl -LO https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
136
- curl -LO https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.18.3.tar.gz
137
- curl -LO https://services.gradle.org/distributions/gradle-7.1.1-bin.zip
138
- # $SUDO tar -xzf cmake-3.24.2-linux-x86_64.tar.gz -C /opt/
139
- $SUDO tar -xzf apache-maven-3.6.3-bin.tar.gz -C /opt/
140
- $SUDO tar -xzf git-2.18.3.tar.gz
141
- $SUDO unzip gradle-7.1.1-bin.zip -d /opt/
142
- # pushd git-2.18.3; make -j2 prefix=/usr/local/; $SUDO make -j2 prefix=/usr/local/ install; popd
143
- # $SUDO ln -sf /opt/cmake-3.24.2-linux-x86_64/bin/* /usr/bin/
144
- $SUDO ln -sf /opt/apache-maven-3.6.3/bin/mvn /usr/bin/mvn
145
- $SUDO ln -sf /opt/gradle-7.1.1/bin/gradle /usr/bin/gradle
146
-
147
- $SUDO python3 -m pip install gdown || $SUDO python3 -m pip install gdown
148
-
135
+
149
136
# install vulkan sdk
150
137
echo Installing Vulkan-SDK
151
138
if [[ "$CODENAME" == "jammy" ]]; then
152
139
curl -s https://packages.lunarg.com/lunarg-signing-key-pub.asc | $SUDO tee /etc/apt/trusted.gpg.d/lunarg.asc >/dev/null
153
140
$SUDO curl -s -o /etc/apt/sources.list.d/lunarg-vulkan-1.3.280-jammy.list https://packages.lunarg.com/vulkan/1.3.280/lunarg-vulkan-1.3.280-jammy.list
141
+ $SUDO sed -i 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list.d/lunarg-vulkan-1.3.280-jammy.list
142
+ $SUDO sed -i 's/deb-src http/deb-src [arch=amd64] http/g' /etc/apt/sources.list.d/lunarg-vulkan-1.3.280-jammy.list
154
143
else
155
144
curl -s https://packages.lunarg.com/lunarg-signing-key-pub.asc | $SUDO apt-key add -
156
145
$SUDO curl -s -o /etc/apt/sources.list.d/lunarg-vulkan-1.3.280-focal.list https://packages.lunarg.com/vulkan/1.3.280/lunarg-vulkan-1.3.280-focal.list
146
+ $SUDO sed -i 's/deb http/deb [arch=amd64] http/g' /etc/apt/sources.list.d/lunarg-vulkan-1.3.280-focal.list
147
+ $SUDO sed -i 's/deb-src http/deb-src [arch=amd64] http/g' /etc/apt/sources.list.d/lunarg-vulkan-1.3.280-focal.list
157
148
fi
158
149
$SUDO apt-get update && $SUDO apt-get install -y libvulkan1 libvulkan-dev vulkan-sdk
159
-
150
+
160
151
if [[ -n ${USERLAND_BUILDME:-} ]]; then
161
152
curl -LOJ https://github.com/raspberrypi/userland/archive/master.tar.gz
162
153
tar -xzf userland-master.tar.gz
@@ -166,7 +157,7 @@ runs:
166
157
export USERLAND_PATH=$(pwd)/userland-master/
167
158
echo "USERLAND_PATH=$USERLAND_PATH" >> $GITHUB_ENV
168
159
fi
169
-
160
+
170
161
if [[ $CI_DEPLOY_PLATFORM == android-* ]]; then
171
162
curl -LO https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip
172
163
unzip -qq android-ndk-r21e-linux-x86_64.zip
@@ -175,15 +166,15 @@ runs:
175
166
else
176
167
export MAVEN_OPTIONS="-Djavacpp.platform.compiler=$PREFIX-g++ -Djava.library.path=/usr/$PREFIX/lib/:/usr/lib/$PREFIX/:$USERLAND_PATH/build/lib/"
177
168
fi
178
-
169
+
179
170
if [[ -n ${ARCH_CUDA:-} ]] && [[ -n ${CI_DEPLOY_NEED_CUDA:-} ]]; then
180
171
echo Installing CUDA, cuDNN, nvCOMP, etc
181
172
curl -LO https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/$CUDA
182
173
curl -LO https://developer.download.nvidia.com/compute/cuda/repos/rhel8/$ARCH_CUDA/libcudnn8-$CUDNN.rpm
183
174
curl -LO https://developer.download.nvidia.com/compute/cuda/repos/rhel8/$ARCH_CUDA/libcudnn8-devel-$CUDNN.rpm
184
175
curl -LO https://developer.download.nvidia.com/compute/cuda/repos/rhel8/$ARCH_CUDA/libnccl-$NCCL.rpm
185
176
curl -LO https://developer.download.nvidia.com/compute/cuda/repos/rhel8/$ARCH_CUDA/libnccl-devel-$NCCL.rpm
186
-
177
+
187
178
$SUDO rpm -i --force --ignorearch --nodeps $CUDA libcudnn*.rpm libnccl*.rpm
188
179
rm -f *.rpm *.tgz *.txz *.tar.*
189
180
pushd /var/cuda-repo-rhel8-12-3-local/; $SUDO rpm -i --force --ignorearch --nodeps cuda*.rpm libc*.rpm libn*.rpm; $SUDO rm *.rpm; popd
@@ -192,15 +183,15 @@ runs:
192
183
$SUDO ln -sf /usr/local/cuda/lib64/stubs/libnvidia-ml.so /usr/local/cuda/lib64/libnvidia-ml.so
193
184
$SUDO mv /usr/include/cudnn* /usr/include/nccl* /usr/local/cuda/include/
194
185
$SUDO mv /usr/lib64/libcudnn* /usr/lib64/libnccl* /usr/local/cuda/lib64/
195
-
186
+
196
187
if [[ -n ${NVCOMP:-} ]]; then
197
188
curl -LO https://developer.download.nvidia.com/compute/nvcomp/3.0.5/local_installers/$NVCOMP.tgz
198
189
$SUDO tar -xvf $NVCOMP.tgz -C /usr/local/cuda/lib64/ --strip-components=1 lib/ || $SUDO tar -xvf $NVCOMP.tgz -C /usr/local/cuda/lib64/ --strip-components=2 nvcomp-3.0.5-ctk-12.2/lib/
199
190
$SUDO tar -xvf $NVCOMP.tgz -C /usr/local/cuda/include/ --strip-components=1 include/ || $SUDO tar -xvf $NVCOMP.tgz -C /usr/local/cuda/include/ --strip-components=2 nvcomp-3.0.5-ctk-12.2/include/
200
191
rm -f $NVCOMP.tgz
201
192
fi
202
-
203
- # Work around issues with CUDA 10.2/11.x
193
+
194
+ # Work around issues with CUDA 10.2/11.x
204
195
$SUDO mv /usr/include/cublas* /usr/include/nvblas* /usr/local/cuda/include/ || true
205
196
$SUDO mv /usr/lib64/libcublas* /usr/lib64/libnvblas* /usr/local/cuda/lib64/ || true
206
197
for f in /usr/local/cuda/include/*_v8.h; do $SUDO ln -sf $f ${f:0:${#f}-5}.h; done
@@ -224,7 +215,7 @@ runs:
224
215
$SUDO sed -i /device_merge_sort.cuh/d /usr/local/cuda/include/cub/cub.cuh
225
216
$SUDO sed -i /device_segmented_sort.cuh/d /usr/local/cuda/include/cub/cub.cuh
226
217
$SUDO sed -i /warp_merge_sort.cuh/d /usr/local/cuda/include/cub/cub.cuh
227
-
218
+
228
219
# Remove downloaded archives and unused libraries to avoid running out of disk space
229
220
$SUDO rm -f $(find /usr/local/cuda/ -name '*.a' -and -not -name libcudart_static.a -and -not -name libcudadevrt.a -and -not -name libnvcomp_device.a)
230
221
fi
@@ -242,9 +233,9 @@ runs:
242
233
- name : Publish release
243
234
shell : bash
244
235
if : " github.event_name == 'release'"
245
- run : ./gradlew build publish -Pdeploy.kotlin=false -Pdeploy.native=true -Pffmpeg.gpl=${{ matrix.gpl }} -Pdeploy.version=${{ github.event.release.tag_name }} --console=plain --info --configure-on-demand --parallel --build-cache
236
+ run : ./gradlew build publish -Pdeploy.kotlin=false -Pdeploy.native=true -Pffmpeg.platform=${{ github.job }} -Pffmpeg. gpl=${{ matrix.gpl }} -Pdeploy.version=${{ github.event.release.tag_name }} --console=plain --info --configure-on-demand --parallel --build-cache
246
237
247
238
- name : Publish snapshot
248
239
shell : bash
249
240
if : " github.event_name != 'release'"
250
- run : ./gradlew build publish -Pdeploy.kotlin=false -Pdeploy.native=true -Pffmpeg.gpl=${{ matrix.gpl }} -Pdeploy.version=${{ steps.vars.outputs.sha_short }}-dev --console=plain --info --configure-on-demand --parallel --build-cache
241
+ run : ./gradlew build publish -Pdeploy.kotlin=false -Pdeploy.native=true -Pffmpeg.platform=${{ github.job }} -Pffmpeg. gpl=${{ matrix.gpl }} -Pdeploy.version=${{ steps.vars.outputs.sha_short }}-dev --console=plain --info --configure-on-demand --parallel --build-cache
0 commit comments