Skip to content

remove dots

remove dots #32

Workflow file for this run

# https://github.com/marketplace/actions/run-on-architecture
# https://github.com/openpnp/opencv/pull/56
# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix
# https://github.com/openpnp/opencv/actions
# https://github.com/openpnp/opencv/pull/59/files
# https://stackoverflow.com/questions/57498605/github-actions-share-workspace-artifacts-between-jobs?rq=1
# https://github.com/actions/upload-artifact
# https://github.com/actions/download-artifact
# TODO
# - maybe consider doing an arm64 test with run on?
# - see if I can remove more hardcoded paths and such using the matrix variables.
name: Build OpenPnP OpenCV Distribution
on:
push:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false
jobs:
build_linux_arm:
if: false
strategy:
matrix:
os: [ubuntu-18.04]
java: [8]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Setup JDK ${{ matrix.java }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Get Version Info
run: |
echo "POM_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.long -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION_SHORT=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.short -q -DforceStdout)" >> $GITHUB_ENV
- name: Build OpenCV on Arm
uses: uraimo/run-on-arch-action@v2.0.9
with:
arch: armv7
distro: ubuntu18.04
# Not required, but speeds up builds
githubToken: ${{ github.token }}
# Create an artifacts directory
setup: |
mkdir -p "${PWD}/artifacts"
# Mount the artifacts directory as /artifacts in the container
# Also mount the checked out repo as /host_repo so we can do a test build.
dockerRunArgs: |
--volume "${PWD}/artifacts:/artifacts"
--volume "${PWD}:/host_repo"
run: |
apt-get update -q -y
apt-get install -q -y git wget cmake unzip build-essential default-jre default-jdk ant maven python3
# TODO: I'd like to get this path automatically somehow. I think it might be
# in /etc/environment but sourcing it didn't seem to work. Need to figure out
# where it would be after starting a new shell.
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-armhf
wget https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip > /dev/null
unzip ${{ env.OPENCV_VERSION }} > /dev/null
cd opencv-${{ env.OPENCV_VERSION }}
mkdir build
cd build
cmake \
-D OPENCV_FORCE_3RDPARTY_BUILD=ON \
-D BUILD_JAVA=ON \
-D BUILD_FAT_JAVA_LIB=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_SHARED_LIBS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
-D BUILD_DOCS=OFF \
-D BUILD_PACKAGE=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=OFF \
-D BUILD_opencv_apps=OFF \
-D BUILD_opencv_gapi=OFF \
-D CMAKE_BUILD_TYPE=RELEASE \
..
make -j4
# Copy the build artifacts to the /artifacts directory, which will be
# used by the host to upload them.
mkdir -p /artifacts/bin
mkdir -p /artifacts/lib
cp bin/opencv-${{ env.OPENCV_VERSION_SHORT }}.jar /artifacts/bin
cp lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.so /artifacts/lib
# And also copy the build artifacts to the repo, so we can do a test build.
# Note that we use the repo checked out on the host so that we can use
# actions/checkout for the Git stuff, rather than having to mess with
# the authentication in this container.
cp bin/opencv-${{ env.OPENCV_VERSION_SHORT }}.jar /host_repo/upstream
cp lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.so /host_repo/src/main/resources/nu/pattern/opencv/linux/ARMv7
# Peform a test build in the host repo, which now contains all of the
# build artifacts.
cd /host_repo
mvn -B test
- name: Upload Artifacts
uses: actions/upload-artifact@v2
with:
name: ubuntu-18.04-arm
path: |
artifacts/bin/opencv-${{ env.OPENCV_VERSION_SHORT }}.jar
artifacts/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.so
build_linux_arm64:
if: false
strategy:
matrix:
os: [ubuntu-18.04]
java: [15]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Setup JDK ${{ matrix.java }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Get Version Info
run: |
echo "POM_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.long -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION_SHORT=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.short -q -DforceStdout)" >> $GITHUB_ENV
- name: Build OpenCV on Arm64
uses: uraimo/run-on-arch-action@v2.0.9
with:
arch: aarch64
distro: ubuntu18.04
# Not required, but speeds up builds
githubToken: ${{ github.token }}
# Create an artifacts directory
setup: |
mkdir -p "${PWD}/artifacts"
# Mount the artifacts directory as /artifacts in the container
# Also mount the checked out repo as /host_repo so we can do a test build.
dockerRunArgs: |
--volume "${PWD}/artifacts:/artifacts"
--volume "${PWD}:/host_repo"
run: |
apt-get update -q -y
apt-get install -q -y git wget cmake unzip build-essential default-jre default-jdk ant maven python3
# TODO: I'd like to get this path automatically somehow. I think it might be
# in /etc/environment but sourcing it didn't seem to work. Need to figure out
# where it would be after starting a new shell.
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-arm64
wget https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip > /dev/null
unzip ${{ env.OPENCV_VERSION }} > /dev/null
cd opencv-${{ env.OPENCV_VERSION }}
mkdir build
cd build
cmake \
-D OPENCV_FORCE_3RDPARTY_BUILD=ON \
-D BUILD_JAVA=ON \
-D BUILD_FAT_JAVA_LIB=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_SHARED_LIBS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
-D BUILD_DOCS=OFF \
-D BUILD_PACKAGE=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=OFF \
-D BUILD_opencv_apps=OFF \
-D BUILD_opencv_gapi=OFF \
-D CMAKE_BUILD_TYPE=RELEASE \
..
make -j4
# Copy the build artifacts to the /artifacts directory, which will be
# used by the host to upload them.
mkdir -p /artifacts/bin
mkdir -p /artifacts/lib
cp bin/opencv-${{ env.OPENCV_VERSION_SHORT }}.jar /artifacts/bin
cp lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.so /artifacts/lib
# And also copy the build artifacts to the repo, so we can do a test build.
# Note that we use the repo checked out on the host so that we can use
# actions/checkout for the Git stuff, rather than having to mess with
# the authentication in this container.
cp bin/opencv-${{ env.OPENCV_VERSION_SHORT }}.jar /host_repo/upstream
cp lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.so /host_repo/src/main/resources/nu/pattern/opencv/linux/ARMv8
# Peform a test build in the host repo, which now contains all of the
# build artifacts.
cd /host_repo
mvn -B test
- name: Upload Artifacts
uses: actions/upload-artifact@v2
with:
name: ubuntu-18.04-arm64
path: |
artifacts/bin/opencv-${{ env.OPENCV_VERSION_SHORT }}.jar
artifacts/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.so
# Build native libraries for Linux and Mac. Uploads the libraries
# as artifacts which are used in subsequent jobs.
build_mac_linux_x64:
strategy:
matrix:
# os: [ubuntu-18.04, macos-10.15]
os: [ubuntu-latest]
java: [8]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Setup JDK ${{ matrix.java }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Get Version Info
run: |
echo "POM_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.long -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION_SHORT=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.short -q -DforceStdout)" >> $GITHUB_ENV
echo "FFMPEG_VERSION_SHORT=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=ffmpeg.version.short -q -DforceStdout)" >> $GITHUB_ENV
- name: Install/Update nasm and yasm
run: |
sudo apt-get install -y nasm yasm
- name: Build ffmpeg
run: |
wget https://ffmpeg.org/releases/ffmpeg-${{ env.FFMPEG_VERSION_SHORT }}.tar.bz2
tar xjvf ffmpeg-${{ env.FFMPEG_VERSION_SHORT }}.tar.bz2
cd ffmpeg-${{ env.FFMPEG_VERSION_SHORT }}
./configure \
--enable-shared \
--enable-gpl \
--enable-libx264 \
--enable-libx265 \
--enable-libvpx \
--enable-zlib \
--prefix=${{ github.workspace }}/ffmpeg_build
make -j8
make install
- name: Build OpenCV
run: |
wget https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip > /dev/null
unzip ${{ env.OPENCV_VERSION }} > /dev/null
cd opencv-${{ env.OPENCV_VERSION }}
mkdir build
cd build
PKG_CONFIG_PATH=${{ github.workspace }}/ffmpeg_build/lib/pkgconfig:${PKG_CONFIG_PATH}
export PKG_CONFIG_PATH
cmake \
-D OPENCV_FORCE_3RDPARTY_BUILD=ON \
-D BUILD_JAVA=ON \
-D BUILD_FAT_JAVA_LIB=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_SHARED_LIBS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
-D BUILD_DOCS=OFF \
-D BUILD_PACKAGE=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=OFF \
-D BUILD_opencv_apps=OFF \
-D BUILD_opencv_gapi=OFF \
-D CMAKE_BUILD_TYPE=RELEASE \
-D WITH_FFMPEG=ON \
-D FFMPEG_INCLUDE_DIR=${{ github.workspace }}/ffmpeg_build/include \
-D FFMPEG_LIB_DIR=${{ github.workspace }}/ffmpeg_build/lib \
..
make -j8
- name: Copy Libraries
run: |
cp opencv-${{ env.OPENCV_VERSION }}/build/bin/opencv-${{ env.OPENCV_VERSION_SHORT }}.jar upstream || :
cp opencv-${{ env.OPENCV_VERSION }}/build/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.so src/main/resources/nu/pattern/opencv/linux/x86_64 || :
cp opencv-${{ env.OPENCV_VERSION }}/build/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.dylib src/main/resources/nu/pattern/opencv/osx/x86_64 || :
- name: Build with Maven
run: mvn -B test
- name: Upload Libraries
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.os }}
path: |
opencv-${{ env.OPENCV_VERSION }}/build/bin/opencv-${{ env.OPENCV_VERSION_SHORT }}.jar
opencv-${{ env.OPENCV_VERSION }}/build/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.so
opencv-${{ env.OPENCV_VERSION }}/build/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.dylib
# Build Apple Silicon Mac native binary.
# See https://cmake.org/cmake/help/v3.23/variable/CMAKE_APPLE_SILICON_PROCESSOR.html
# Currently runs on Jason's Mac using a Github self hosted runner because Github doesn't
# yet support runners for Apple Silicon on macOS.
# Requires that the runner machine have, at least, maven and ant installed.
build_mac_aarch64:
if: false
strategy:
matrix:
java: [18]
runs-on: [self-hosted, macOS, ARM64]
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Setup JDK ${{ matrix.java }}
uses: actions/setup-java@v3
with:
distribution: 'temurin'
architecture: aarch64
java-version: ${{ matrix.java }}
- name: Get Version Info
run: |
echo "POM_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.long -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION_SHORT=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.short -q -DforceStdout)" >> $GITHUB_ENV
- name: Build OpenCV
run: |
wget https://github.com/opencv/opencv/archive/${{ env.OPENCV_VERSION }}.zip > /dev/null
unzip ${{ env.OPENCV_VERSION }} > /dev/null
cd opencv-${{ env.OPENCV_VERSION }}
mkdir build
cd build
cmake \
-D OPENCV_FORCE_3RDPARTY_BUILD=ON \
-D BUILD_JAVA=ON \
-D BUILD_FAT_JAVA_LIB=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_SHARED_LIBS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_EXAMPLES=OFF \
-D BUILD_DOCS=OFF \
-D BUILD_PACKAGE=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=OFF \
-D BUILD_opencv_apps=OFF \
-D BUILD_opencv_gapi=OFF \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_APPLE_SILICON_PROCESSOR=arm64 \
-D CMAKE_CXX_STANDARD=17 \
..
make -j8
- name: Copy Libraries
run: |
cp opencv-${{ env.OPENCV_VERSION }}/build/bin/opencv-${{ env.OPENCV_VERSION_SHORT }}.jar upstream || :
cp opencv-${{ env.OPENCV_VERSION }}/build/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.dylib src/main/resources/nu/pattern/opencv/osx/ARMv8 || :
- name: Build with Maven
run: mvn -B test
- name: Upload Libraries
uses: actions/upload-artifact@v2
with:
name: macos-aarch64
path: |
opencv-${{ env.OPENCV_VERSION }}/build/bin/opencv-${{ env.OPENCV_VERSION_SHORT }}.jar
opencv-${{ env.OPENCV_VERSION }}/build/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.dylib
# Downloads the Windows distribution from OpenCV, extracts it and uploads
# the native libraries as artifacts for use by subsequent jobs. This is
# in leiu of building the native libraries on Windows.
build_windows:
strategy:
matrix:
os: [ubuntu-18.04]
java: [15]
if: false
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Setup JDK ${{ matrix.java }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Get Version Info
run: |
echo "POM_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.long -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION_SHORT=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.short -q -DforceStdout)" >> $GITHUB_ENV
- name: Download Windows Distribution
run: wget -O opencv-${{ env.OPENCV_VERSION }}.exe https://github.com/opencv/opencv/releases/download/${{ env.OPENCV_VERSION }}/opencv-${{ env.OPENCV_VERSION }}-windows.exe
- name: Extract Windows Distribution
run: 7z x opencv-${{ env.OPENCV_VERSION }}.exe
- name: Upload Libraries
uses: actions/upload-artifact@v2
with:
name: windows-2016
path: opencv/build/java
# Download and combine the artifacts from the above jobs and build the
# distribution jar. Uploads it as an artifact for subsequent steps.
build_dist:
needs: [build_mac_aarch64, build_linux_arm, build_linux_arm64, build_mac_linux_x64, build_windows]
strategy:
matrix:
os: [ubuntu-18.04]
java: [8]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Setup JDK ${{ matrix.java }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Get Version Info
run: |
echo "POM_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.long -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION_SHORT=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.short -q -DforceStdout)" >> $GITHUB_ENV
- name: Download Libraries
uses: actions/download-artifact@v2
- name: Copy Binaries
run: |
cp macos-10.15/bin/opencv-${{ env.OPENCV_VERSION_SHORT }}.jar upstream
cp macos-10.15/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.dylib src/main/resources/nu/pattern/opencv/osx/x86_64
cp macos-aarch64/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.dylib src/main/resources/nu/pattern/opencv/osx/ARMv8
cp ubuntu-18.04/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.so src/main/resources/nu/pattern/opencv/linux/x86_64
cp ubuntu-18.04-arm/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.so src/main/resources/nu/pattern/opencv/linux/ARMv7
cp ubuntu-18.04-arm64/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.so src/main/resources/nu/pattern/opencv/linux/ARMv8
cp windows-2016/x86/opencv_java${{ env.OPENCV_VERSION_SHORT }}.dll src/main/resources/nu/pattern/opencv/windows/x86_32
cp windows-2016/x64/opencv_java${{ env.OPENCV_VERSION_SHORT }}.dll src/main/resources/nu/pattern/opencv/windows/x86_64
- name: Build with Maven
run: mvn -B install
- name: Upload Distribution
uses: actions/upload-artifact@v2
with:
name: dist
path: target/opencv*
# Downloads the distribution jar that was built above and runs
# a short smoke test on it on many platforms and versions of
# Java. This is intended to ensure that the built jar
# runs on all of the supported targets.
test:
needs: build_dist
strategy:
matrix:
os: [macos-10.15, windows-2019, ubuntu-20.04, ubuntu-18.04]
java: [8, 9, 10, 11, 12, 13, 14, 15]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Setup JDK ${{ matrix.java }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: Get Version Info
shell: bash
run: |
echo "POM_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.long -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION_SHORT=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.short -q -DforceStdout)" >> $GITHUB_ENV
- name: Download Distribution
uses: actions/download-artifact@v2
with:
name: dist
- name: Run Test
shell: bash
run: java -cp opencv-${{ env.POM_VERSION }}.jar nu.pattern.PrintVersion
publish:
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
needs: test
strategy:
matrix:
os: [ubuntu-18.04]
java: [8]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Setup JDK ${{ matrix.java }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
server-id: ossrh
server-username: OSSRH_USERNAME
server-password: OSSRH_PASSWORD
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE
- name: Get Version Info
run: |
echo "POM_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.long -q -DforceStdout)" >> $GITHUB_ENV
echo "OPENCV_VERSION_SHORT=$(mvn build-helper:parse-version org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=opencv.version.short -q -DforceStdout)" >> $GITHUB_ENV
- name: Download Libraries
uses: actions/download-artifact@v2
- name: Copy Binaries
run: |
cp macos-10.15/bin/opencv-${{ env.OPENCV_VERSION_SHORT }}.jar upstream
cp macos-10.15/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.dylib src/main/resources/nu/pattern/opencv/osx/x86_64
cp macos-aarch64/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.dylib src/main/resources/nu/pattern/opencv/osx/ARMv8
cp ubuntu-18.04/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.so src/main/resources/nu/pattern/opencv/linux/x86_64
cp ubuntu-18.04-arm/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.so src/main/resources/nu/pattern/opencv/linux/ARMv7
cp ubuntu-18.04-arm64/lib/libopencv_java${{ env.OPENCV_VERSION_SHORT }}.so src/main/resources/nu/pattern/opencv/linux/ARMv8
cp windows-2016/x86/opencv_java${{ env.OPENCV_VERSION_SHORT }}.dll src/main/resources/nu/pattern/opencv/windows/x86_32
cp windows-2016/x64/opencv_java${{ env.OPENCV_VERSION_SHORT }}.dll src/main/resources/nu/pattern/opencv/windows/x86_64
- name: Publish to Apache Maven Central
run: mvn -B -e clean deploy -P release-sign-artifacts
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}