Skip to content

Fix Indigo CI

Fix Indigo CI #4863

Workflow file for this run

name: Indigo CI
env:
OS_NAME_MAPPING_JSON: '{"ubuntu-latest": "linux", "windows-latest": "windows", "macos-13": "macos"}'
on:
push:
branches:
- master
tags:
- 'indigo-*'
workflow_dispatch:
pull_request:
repository_dispatch:
jobs:
static_analysis:
runs-on: ubuntu-latest
container: epmlsop/indigo-tester:latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Check
run: |
python3 -m pip install -r api/python/requirements_dev.txt
.ci/static_analysis_check.sh
build_indigo_libs_x86_64:
strategy:
fail-fast: false
matrix:
os: [ macos-13, ubuntu-latest, windows-latest ]
runs-on: ${{ matrix.os }}
needs: static_analysis
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Build Linux
if: ${{ startsWith(matrix.os, 'ubuntu') }}
uses: docker://epmlsop/buildpack-centos7:latest
with:
args: >
/bin/sh -c "
mkdir build &&
cd build &&
cmake .. -DBUILD_INDIGO=ON -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_INDIGO_UTILS=OFF -DBUILD_BINGO=OFF -DBUILD_BINGO_ELASTIC=OFF &&
cmake --build . --config Release --target all -- -j $(nproc) &&
ctest --verbose
"
- name: Build macOS
if: ${{ startsWith(matrix.os, 'macos') }}
run: |
mkdir build
cd build
cmake .. -DBUILD_INDIGO=ON -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_INDIGO_UTILS=OFF -DBUILD_BINGO=OFF -DBUILD_BINGO_ELASTIC=OFF
cmake --build . --config Release --target all -- -j $(sysctl -n hw.logicalcpu)
ctest --verbose
- name: Build Windows
if: ${{ startsWith(matrix.os, 'windows') }}
run: |
mkdir build
cd build
cmake .. -DBUILD_INDIGO=ON -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_INDIGO_UTILS=OFF -DBUILD_BINGO=OFF -DBUILD_BINGO_ELASTIC=OFF
cmake --build . --config Release --target ALL_BUILD
ctest --verbose -C Release
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: indigo-libs-${{ fromJSON(env.OS_NAME_MAPPING_JSON)[matrix.os] }}-x86_64
path: dist
build_indigo_libs_i386:
strategy:
fail-fast: false
matrix:
os: [ windows-latest ]
runs-on: ${{ matrix.os }}
needs: static_analysis
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Build Windows
if: ${{ startsWith(matrix.os, 'windows') }}
run: |
mkdir build
cd build
cmake .. -G "Visual Studio 17 2022" -A Win32 -DBUILD_INDIGO=ON -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_INDIGO_UTILS=OFF -DBUILD_BINGO=OFF -DBUILD_BINGO_ELASTIC=OFF -DCMAKE_SYSTEM_PROCESSOR_LOWER=i386
cmake --build . --config Release --target ALL_BUILD
ctest --verbose -C Release
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: indigo-libs-${{ fromJSON(env.OS_NAME_MAPPING_JSON)[matrix.os] }}-i386
path: dist
build_indigo_libs_aarch64:
strategy:
fail-fast: false
matrix:
os: [ macos-13, ubuntu-latest ]
runs-on: ${{ matrix.os }}
needs: static_analysis
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Build Linux
if: ${{ startsWith(matrix.os, 'ubuntu') }}
uses: docker://epmlsop/buildpack-arm64:latest
with:
args: >
/bin/sh -c "
mkdir build &&
cd build &&
cmake .. -DBUILD_INDIGO=ON -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_INDIGO_UTILS=OFF -DBUILD_BINGO=OFF -DBUILD_BINGO_ELASTIC=OFF -DCMAKE_SYSTEM_PROCESSOR_LOWER=aarch64 &&
cmake --build . --config Release --target all -- -j $(nproc) &&
ctest --verbose -R dlopen
"
- name: Build macOS
if: ${{ startsWith(matrix.os, 'macos') }}
run: |
mkdir build
cd build
cmake .. -DBUILD_INDIGO=ON -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_INDIGO_UTILS=OFF -DBUILD_BINGO=OFF -DBUILD_BINGO_ELASTIC=OFF -DCMAKE_SYSTEM_PROCESSOR_LOWER=aarch64 -DCMAKE_OSX_ARCHITECTURES=arm64
cmake --build . --config Release --target all -- -j $(sysctl -n hw.logicalcpu)
# ctest --verbose # NOTE: We can't run tests until we have native ARM64 node
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: indigo-libs-${{ fromJSON(env.OS_NAME_MAPPING_JSON)[matrix.os] }}-aarch64
path: dist
build_indigo_wrappers:
strategy:
fail-fast: false
matrix:
wrapper: [ python, java, dotnet ]
runs-on: ubuntu-latest
needs: [ build_indigo_libs_x86_64, build_indigo_libs_aarch64, build_indigo_libs_i386 ]
container: epmlsop/indigo-tester:latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Create folder for native libs
run: mkdir dist
- name: Download Linux native libs x86_64
uses: actions/download-artifact@v3
with:
name: indigo-libs-linux-x86_64
path: dist/
- name: Download Linux native libs aarch64
uses: actions/download-artifact@v3
with:
name: indigo-libs-linux-aarch64
path: dist/
- name: Download Windows native libs x86_64
uses: actions/download-artifact@v3
with:
name: indigo-libs-windows-x86_64
path: dist/
- name: Download Windows native libs i386
uses: actions/download-artifact@v3
with:
name: indigo-libs-windows-i386
path: dist/
- name: Download macOS native libs x86_64
uses: actions/download-artifact@v3
with:
name: indigo-libs-macos-x86_64
path: dist/
- name: Download macOS native libs aarch64
uses: actions/download-artifact@v3
with:
name: indigo-libs-macos-aarch64
path: dist/
- name: Install Python test dependencies
run: python3 -m pip install -r api/python/requirements_dev.txt
- name: Build wrappers
run: |
mkdir build
cd build
cmake .. -DBUILD_INDIGO=OFF -DBUILD_INDIGO_UTILS=OFF -DBUILD_BINGO=OFF -DBUILD_BINGO_ELASTIC=OFF
cmake --build . --config Release --target indigo-${{ matrix.wrapper }}
- name: Upload native shared libs
uses: actions/upload-artifact@v3
with:
name: indigo-native-shared-libs
path: |
dist/lib
- name: Upload Python wrappers
if: ${{ matrix.wrapper == 'python' }}
uses: actions/upload-artifact@v3
with:
name: indigo-python
path: |
dist/*.whl
- name: Upload Java wrappers
if: ${{ matrix.wrapper == 'java' }}
uses: actions/upload-artifact@v3
with:
name: indigo-java
path: dist/*.jar
- name: Upload .NET wrappers
if: ${{ matrix.wrapper == 'dotnet' }}
uses: actions/upload-artifact@v3
with:
name: indigo-dotnet
path: dist/*.nupkg
test_indigo_python_x86_64:
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
os: [ macos-13, ubuntu-latest, windows-latest ]
runs-on: ${{ matrix.os }}
needs: build_indigo_wrappers
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Create folder for native libs
run: mkdir dist
- name: Download wrappers
uses: actions/download-artifact@v3
with:
name: indigo-python
path: dist/
- name: Install Pillow
run: python3 -m pip install Pillow --break-system-packages
- name: Install wrappers Linux
if: ${{ startsWith(matrix.os, 'ubuntu') }}
run: python3 -m pip install dist/*manylinux1_x86_64*.whl --break-system-packages
- name: Install wrappers Windows
if: ${{ startsWith(matrix.os, 'windows') }}
run: Get-ChildItem dist -Filter *win_amd64*.whl -Recurse | % { python3 -m pip install $_.FullName }
- name: Install wrappers macOS
if: ${{ startsWith(matrix.os, 'macos') }}
run: python3 -m pip install dist/*macosx_10_7_intel*.whl --break-system-packages
- name: Test
run: python3 -Wignore api/tests/integration/test.py -t 1 -j junit_report.xml
- name: Publish Test Report
if: always()
uses: mikepenz/action-junit-report@v3
with:
report_paths: 'junit_report.xml'
github_token: ${{ secrets.GITHUB_TOKEN }}
check_name: "${{ matrix.os }}-x86_64-python_test_report"
test_indigo_python_aarch64:
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
runs-on: ${{ matrix.os }}
needs: build_indigo_wrappers
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Create folder for native libs
run: mkdir dist
- name: Download wrappers
uses: actions/download-artifact@v3
with:
name: indigo-python
path: dist/
- name: Test Linux
if: ${{ startsWith(matrix.os, 'ubuntu') }}
uses: uraimo/[email protected]
with:
arch: aarch64
distro: ubuntu20.04
githubToken: ${{ github.token }}
run: |
apt update
apt install -y --no-install-recommends python3 python3-pip
apt install -y python3-pil
python3 -m pip install dist/*manylinux2014_aarch64*.whl
python3 api/tests/integration/test.py -p basic/basic.py -t 1 -j junit_report.xml
- name: Publish Test Report
if: always()
uses: mikepenz/action-junit-report@v3
with:
report_paths: 'junit_report.xml'
github_token: ${{ secrets.GITHUB_TOKEN }}
check_name: "${{ matrix.os }}-aarch64-python_test_report"
test_indigo_python_i386:
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
os: [ windows-latest ]
runs-on: ${{ matrix.os }}
needs: build_indigo_wrappers
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Create folder for native libs
run: mkdir dist
- name: Download wrappers
uses: actions/download-artifact@v3
with:
name: indigo-python
path: dist/
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.9'
architecture: x86
- name: Install Pillow
run: python -m pip install Pillow
- name: Install wrappers Windows
if: ${{ startsWith(matrix.os, 'windows') }}
run: Get-ChildItem dist -Filter *win32*.whl -Recurse | % { python -m pip install $_.FullName --break-system-packages }
- name: Test
run: python api/tests/integration/test.py -t 1 -p basic/basic.py -j junit_report.xml
- name: Publish Test Report
if: always()
uses: mikepenz/action-junit-report@v3
with:
report_paths: 'junit_report.xml'
github_token: ${{ secrets.GITHUB_TOKEN }}
check_name: "${{ matrix.os }}-i386-python_test_report"
test_indigo_java_x86_64:
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
os: [ macos-13, ubuntu-latest, windows-latest ]
runs-on: ${{ matrix.os }}
needs: build_indigo_wrappers
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Create folder for native libs
run: mkdir dist
- name: Download wrappers
uses: actions/download-artifact@v3
with:
name: indigo-java
path: dist/
- name: Install Jython
run: |
curl -L https://repo1.maven.org/maven2/org/python/jython-standalone/2.7.2/jython-standalone-2.7.2.jar -o jython.jar
- name: Test
env:
INDIGO_PATH: ${{ github.workspace }}/dist
run: |
java -Xss4m -jar jython.jar api/tests/integration/test.py -t 1 -j junit_report.xml
- name: Publish Test Report
if: always()
uses: mikepenz/action-junit-report@v3
with:
report_paths: 'junit_report.xml'
github_token: ${{ secrets.GITHUB_TOKEN }}
check_name: "${{ matrix.os }}-x86_64-java_test_report"
test_indigo_java_aarch64:
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
runs-on: ${{ matrix.os }}
needs: build_indigo_wrappers
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Create folder for native libs
run: mkdir dist
- name: Download wrappers
uses: actions/download-artifact@v3
with:
name: indigo-java
path: dist/
- name: Test Linux
if: ${{ startsWith(matrix.os, 'ubuntu') }}
uses: uraimo/[email protected]
with:
arch: aarch64
distro: ubuntu20.04
githubToken: ${{ github.token }}
run: |
apt update
apt install -y curl default-jre
curl -L https://repo1.maven.org/maven2/org/python/jython-standalone/2.7.2/jython-standalone-2.7.2.jar -o jython.jar
export INDIGO_PATH=${{ github.workspace }}/dist
java -Xss4m -jar jython.jar api/tests/integration/test.py -p basic/basic.py -t 1 -j junit_report.xml
- name: Publish Test Report
if: always()
uses: mikepenz/action-junit-report@v3
with:
report_paths: 'junit_report.xml'
github_token: ${{ secrets.GITHUB_TOKEN }}
check_name: "${{ matrix.os }}-aarch64-java_test_report"
test_indigo_java_i386:
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
os: [ windows-latest ]
runs-on: ${{ matrix.os }}
needs: build_indigo_wrappers
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Create folder for native libs
run: mkdir dist
- name: Download wrappers
uses: actions/download-artifact@v3
with:
name: indigo-java
path: dist/
- uses: actions/setup-java@v2
with:
distribution: 'adopt-hotspot'
java-version: '11'
architecture: x86
- name: Install Jython
run: |
curl -L https://repo1.maven.org/maven2/org/python/jython-standalone/2.7.2/jython-standalone-2.7.2.jar -o jython.jar
- name: Test
env:
INDIGO_PATH: ${{ github.workspace }}/dist
run: |
java -Xss4m -jar jython.jar api/tests/integration/test.py -t 1 -p basic/basic.py -j junit_report.xml
- name: Publish Test Report
if: always()
uses: mikepenz/action-junit-report@v3
with:
report_paths: 'junit_report.xml'
github_token: ${{ secrets.GITHUB_TOKEN }}
check_name: "${{ matrix.os }}-i386-java_test_report"
test_indigo_dotnet_x86_64:
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
# os: [ macos-13, ubuntu-latest, windows-latest ]
os: [ macos-13, windows-latest ]
runs-on: ${{ matrix.os }}
needs: build_indigo_wrappers
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Create folder for native libs
run: mkdir dist
- name: Download wrappers
uses: actions/download-artifact@v3
with:
name: indigo-dotnet
path: dist/
- name: Prepare Common
run: |
mkdir IronPython
mkdir tmp
cd IronPython
curl -OL https://github.com/IronLanguages/ironpython3/releases/download/v3.4.0/IronPython.3.4.0.zip
- name: Install dotnet 6
if: ${{ startsWith(matrix.os, 'macos') }}
run: |
curl -Lo dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/270b615f-5281-4c58-980f-d9f7a08db642/3e874492a9cb0d5b87195c596b46d609/dotnet-sdk-6.0.421-osx-x64.tar.gz
mkdir -p ${{ github.workspace }}/tmp/dotnet && tar zxf dotnet.tar.gz -C ${{ github.workspace }}/tmp/dotnet
- name: Prepare UNIX
if: ${{ !startsWith(matrix.os, 'windows') }}
run: |
cd IronPython
unzip IronPython.3.4.0.zip
cd ../tmp
unzip ../dist/Indigo.Net.*.nupkg
chmod -R a+rw .
- name: Prepare Windows
if: ${{ startsWith(matrix.os, 'windows') }}
run: |
cd IronPython
Expand-Archive IronPython.3.4.0.zip .
cd ../tmp
Expand-Archive ../dist/Indigo.Net.*.nupkg .
- name: Test Linux
if: ${{ startsWith(matrix.os, 'ubuntu') }}
env:
INDIGO_PATH: ${{ github.workspace }}/tmp/lib/netstandard2.0/Indigo.Net.dll
LD_LIBRARY_PATH: ${{ github.workspace }}/tmp/runtimes/linux-x64/native
run: |
dotnet IronPython/net6.0/ipy.dll api/tests/integration/test.py -t 1 -j junit_report.xml
- name: Test macOS
if: ${{ startsWith(matrix.os, 'macos') }}
env:
INDIGO_PATH: ${{ github.workspace }}/tmp/lib/netstandard2.0/Indigo.Net.dll
DOTNET_ROOT: ${{ github.workspace }}/tmp/dotnet
PATH: ${{ github.workspace }}/tmp/dotnet:$PATH
run: |
export DYLD_LIBRARY_PATH=${PWD}/tmp/runtimes/osx-x64/native
dotnet IronPython/net6.0/ipy.dll api/tests/integration/test.py -t 1 -j junit_report.xml
- name: Test Windows
if: ${{ startsWith(matrix.os, 'windows') }}
env:
INDIGO_PATH: ${{ github.workspace }}/tmp/lib/netstandard2.0/Indigo.Net.dll
PATH: ${{ env.PATH }};${{ github.workspace }}/tmp/runtimes/win-x64/native
run: ./IronPython/net462/ipy.exe api/tests/integration/test.py -t 1 -j junit_report.xml
- name: Publish Test Report
if: always()
uses: mikepenz/action-junit-report@v3
with:
report_paths: 'junit_report.xml'
github_token: ${{ secrets.GITHUB_TOKEN }}
check_name: "${{ matrix.os }}-x86_64-dotnet_test_report"
test_indigo_dotnet_i386:
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
os: [ windows-latest ]
runs-on: ${{ matrix.os }}
needs: build_indigo_wrappers
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Create folder for native libs
run: mkdir dist
- name: Download wrappers
uses: actions/download-artifact@v3
with:
name: indigo-dotnet
path: dist/
- name: Prepare Common
run: |
mkdir IronPython
mkdir tmp
cd IronPython
curl -OL https://github.com/IronLanguages/ironpython3/releases/download/v3.4.0/IronPython.3.4.0.zip
- name: Prepare Windows
if: ${{ startsWith(matrix.os, 'windows') }}
run: |
cd IronPython
Expand-Archive IronPython.3.4.0.zip .
cd ../tmp
Expand-Archive ../dist/Indigo.Net.*.nupkg .
- name: Test Windows
if: ${{ matrix.os == 'windows' }}
env:
INDIGO_PATH: ${{ github.workspace }}/tmp/lib/netstandard2.0/Indigo.Net.dll
PATH: ${{ env.PATH }};${{ github.workspace }}/tmp/runtimes/win-x86/native
run: ./IronPython/net462/ipy32.exe api/tests/integration/test.py -t 1 -p basic/basic.py -j junit_report.xml
- name: Publish Test Report
if: always()
uses: mikepenz/action-junit-report@v3
with:
report_paths: 'junit_report.xml'
github_token: ${{ secrets.GITHUB_TOKEN }}
check_name: "${{ matrix.os }}_i386_dotnet_test_report"
test_bingo_elastic_python_linux_x86_64:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: [ '3.9', '3.10' ]
needs: build_indigo_wrappers
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
lfs: false
fetch-depth: 500
- name: Create folder for native libs
run: mkdir dist
- name: Download wrappers
uses: actions/download-artifact@v3
with:
name: indigo-python
path: dist/
- name: Install latest indigo version
run: pip install ${GITHUB_WORKSPACE}/dist/epam.indigo-*manylinux1_x86_64.whl --break-system-packages
working-directory: bingo/bingo-elastic/python
- name: Install dev dependencies
run: pip install ".[dev]" --break-system-packages
working-directory: bingo/bingo-elastic/python
- name: Setup elasticsearch
run: docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "indices.query.bool.max_clause_count=4096" docker.elastic.co/elasticsearch/elasticsearch:7.16.2
- name: Wait elastic is ready
run: sleep 30s
- name: Build wheel
working-directory: bingo/bingo-elastic/python
run: |
pip install ".[async]" --break-system-packages
python setup.py bdist_wheel
cp dist/*.whl ${GITHUB_WORKSPACE}/dist/
- name: Run pylint
run: pylint --max-args 10 bingo_elastic
working-directory: bingo/bingo-elastic/python
- name: Run tests
run: pytest tests
working-directory: bingo/bingo-elastic/python
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: bingo-elastic-python
path: dist
test_bingo_elastic_java_linux_x86_64:
strategy:
fail-fast: false
matrix:
java-version: [ 1.8, 1.11 ]
runs-on: ubuntu-latest
needs: build_indigo_wrappers
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java-version }}
- name: Cache Maven packages
uses: actions/cache@v2
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Download wrappers
uses: actions/download-artifact@v3
with:
name: indigo-java
path: dist/
- name: Install Indigo jars
run: find dist -name "*.jar" -not -name "*javadoc*" -not -name "*sources*" -exec mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile={} \;
- name: Build bingo-elastic
run: mvn -B --file pom.xml -Dmaven.repo.local=/home/runner/.m2/repository clean test
working-directory: bingo/bingo-elastic/java
build_indigo_windows_mingw_x86_64:
timeout-minutes: 60
runs-on: windows-latest
needs: static_analysis
defaults:
run:
shell: msys2 {0}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- uses: msys2/setup-msys2@v2
with:
msystem: mingw64
install: mingw-w64-x86_64-gcc mingw-w64-x86_64-make mingw-w64-x86_64-cmake git mingw-w64-x86_64-python mingw-w64-x86_64-python-pip mingw-w64-x86_64-python-wheel mingw-w64-x86_64-python-pillow
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Build native libs
run: |
mkdir build
cd build
cmake .. -G "MinGW Makefiles" -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_BINGO=OFF -DBUILD_BINGO_ELASTIC=OFF -DPython3_ROOT_DIR=/mingw64
cmake --build . --config Release --target all -- -j $(nproc) --output-sync
- name: Test native libs
run: |
cd build
ctest --verbose
# - name: Install Python test dependencies
# run: python3 -m pip install -r api/python/requirements_dev.txt
# - name: Prepare integration tests
# run: |
# cd build
# cmake .. -G "MinGW Makefiles" -DBUILD_INDIGO_WRAPPERS=ON -DBUILD_BINGO=OFF -DBUILD_BINGO_ELASTIC=OFF -DPython3_ROOT_DIR=/mingw64
# cmake --build . --config Release --target indigo-python -- -j $(nproc) --output-sync
# - name: Run integration tests
# run: |
# python api/tests/integration/test.py -t 1 -j junit_report.xml -platform mingw
# - name: Publish Test Report
# if: always()
# uses: mikepenz/action-junit-report@v3
# with:
# report_paths: 'junit_report.xml'
# github_token: ${{ secrets.GITHUB_TOKEN }}
# check_name: "windows-mingw_python_test_report"
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: indigo-libs-windows-mingw-x86_64
path: dist
build_indigo_ketcher:
runs-on: ubuntu-latest
needs: static_analysis
container: emscripten/emsdk:3.1.60
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Update version
run: |
cd api/wasm/indigo-ketcher
ver=$(git describe --abbrev=0 --tags --match "indigo-*")-$(git rev-list $(git describe --abbrev=0 --tags --match "indigo-*").. --count)
ver=$(echo $ver | sed 's/indigo-//g' | sed 's/-0//g')
npm version --allow-same-version ${ver}
- name: Build, Test, Pack
run: |
mkdir build
cd build
emcmake cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release --target indigo-ketcher-package -- -j $(nproc)
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: indigo-ketcher
path: dist/indigo-ketcher*.tgz
build_indigo_ketcher_cjk:
runs-on: ubuntu-latest
needs: static_analysis
container: emscripten/emsdk:3.1.60
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Update version
run: |
cd api/wasm/indigo-ketcher
ver=$(git describe --abbrev=0 --tags --match "indigo-*")-$(git rev-list $(git describe --abbrev=0 --tags --match "indigo-*").. --count)
ver=$(echo $ver | sed 's/indigo-//g' | sed 's/-0//g')
npm version --allow-same-version ${ver}
- name: Build, Test, Pack
run: |
mkdir build
cd build
emcmake cmake .. -DCMAKE_BUILD_TYPE=Release -DRENDER_ENABLE_CJK=ON
cmake --build . --config Release --target indigo-ketcher-package -- -j $(nproc)
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: indigo-ketcher-cjk
path: dist/indigo-ketcher*.tgz
build_indigo_utils_x86_64:
strategy:
fail-fast: false
matrix:
os: [ macos-13, ubuntu-latest, windows-latest ]
runs-on: ${{ matrix.os }}
needs: static_analysis
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Build utils Linux
if: ${{ startsWith(matrix.os, 'ubuntu') }}
uses: docker://epmlsop/buildpack-centos7:latest
with:
args: >
/bin/sh -c "
mkdir build &&
cd build &&
cmake .. -DBUILD_INDIGO=OFF -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_BINGO=OFF -DBUILD_BINGO_ELASTIC=OFF -DBUILD_INDIGO_UTILS=ON &&
cmake --build . --config Release --target all -- -j $(nproc) &&
ctest --verbose
"
- name: Build utils macOS
if: ${{ startsWith(matrix.os, 'macos') }}
run: |
mkdir build
cd build
cmake .. -DBUILD_INDIGO=OFF -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_BINGO=OFF -DBUILD_BINGO_ELASTIC=OFF -DBUILD_INDIGO_UTILS=ON
cmake --build . --config Release --target all -- -j $(sysctl -n hw.logicalcpu)
ctest --verbose
- name: Build utils Windows
if: ${{ startsWith(matrix.os, 'windows') }}
run: |
mkdir build
cd build
cmake .. -DBUILD_INDIGO=OFF -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_BINGO=OFF -DBUILD_BINGO_ELASTIC=OFF -DBUILD_INDIGO_UTILS=ON
cmake --build . --config Release --target ALL_BUILD
ctest --verbose -C Release
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: indigo-utils-${{ fromJSON(env.OS_NAME_MAPPING_JSON)[matrix.os] }}-x86_64
path: dist/utils
build_bingo_oracle_linux_x86_64:
runs-on: ubuntu-latest
needs: static_analysis
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Build bingo-oracle
uses: docker://epmlsop/buildpack-centos7:latest
with:
args: >
/bin/sh -c "
set -eux &&
mkdir build &&
cd build &&
cmake .. -DBUILD_BINGO_ORACLE=ON -DBUILD_BINGO_SQLSERVER=OFF -DBUILD_BINGO_POSTGRES=OFF -DBUILD_INDIGO=OFF -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_INDIGO_UTILS=OFF -DBUILD_BINGO_ELASTIC=OFF &&
cmake --build . --config Release --target package-bingo-oracle -- -j $(nproc)
"
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: bingo-oracle-linux-x86_64
path: dist/bingo-oracle*.tgz
build_bingo_oracle_windows_mingw_x86_64:
runs-on: windows-latest
needs: static_analysis
defaults:
run:
shell: msys2 {0}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- uses: msys2/setup-msys2@v2
with:
msystem: mingw64
install: mingw-w64-x86_64-gcc mingw-w64-x86_64-make mingw-w64-x86_64-cmake git
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Build bingo-oracle
run: |
mkdir build
cd build
cmake .. -G "MinGW Makefiles" -DBUILD_BINGO_ORACLE=ON -DBUILD_BINGO_SQLSERVER=OFF -DBUILD_BINGO_POSTGRES=OFF -DBUILD_INDIGO=OFF -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_INDIGO_UTILS=OFF -DBUILD_BINGO_ELASTIC=OFF
cmake --build . --config Release --target package-bingo-oracle -- -j $(nproc)
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: bingo-oracle-windows-mingw-x86_64
path: dist/bingo-oracle*.zip
build_bingo_oracle_windows_msvc_x86_64:
runs-on: windows-latest
needs: static_analysis
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Build bingo-oracle
run: |
mkdir build
cd build
cmake .. -DBUILD_BINGO_ORACLE=ON -DBUILD_BINGO_SQLSERVER=OFF -DBUILD_BINGO_POSTGRES=OFF -DBUILD_INDIGO=OFF -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_INDIGO_UTILS=OFF -DBUILD_BINGO_ELASTIC=OFF
cmake --build . --config Release --target package-bingo-oracle
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: bingo-oracle-windows-msvc-x86_64
path: dist/bingo-oracle*.zip
build_bingo_postgres_linux_x86_64:
strategy:
fail-fast: false
matrix:
postgres_major_version: [ 12, 13, 14, 15 ]
runs-on: ubuntu-latest
needs: static_analysis
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.9'
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Install postgres server headers and build bingo-postgres
uses: docker://epmlsop/buildpack-centos7:latest
with:
args: >
/bin/sh -c "
set -eux &&
yum install -y --disablerepo base --disablerepo centos-sclo-rh --disablerepo centos-sclo-sclo --disablerepo extras --disablerepo updates https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm yum-utils &&
curl -OL https://download.postgresql.org/pub/repos/yum/keys/PGDG-RPM-GPG-KEY-RHEL &&
rpm --import PGDG-RPM-GPG-KEY-RHEL &&
yumdownloader -y --disablerepo base --disablerepo centos-sclo-rh --disablerepo centos-sclo-sclo --disablerepo extras --disablerepo updates postgresql${{ matrix.postgres_major_version }}-devel &&
rpm -i --nodeps postgresql${{ matrix.postgres_major_version }}*.rpm &&
ls -alh /usr &&
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rh/httpd24/root/usr/lib64 &&
mkdir build &&
cd build &&
cmake .. -DBUILD_BINGO_POSTGRES=ON -DBUILD_BINGO_SQLSERVER=OFF -DBUILD_BINGO_ORACLE=OFF -DBUILD_INDIGO=OFF -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_INDIGO_UTILS=OFF -DBUILD_BINGO_ELASTIC=OFF -DCMAKE_PREFIX_PATH=/usr/pgsql-${{ matrix.postgres_major_version }} &&
cmake --build . --config Release --target package-bingo-postgres -- -j $(nproc)
"
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: bingo-postgres-${{ matrix.postgres_major_version }}-linux-x86_64
path: dist/bingo-postgres*.tgz
- name: Build Docker image
run: |
docker build --tag epmlsop/bingo-postgres:${{ matrix.postgres_major_version }}-latest -f bingo/postgres/Dockerfile --build-arg BINGO_PG_VERSION=${{ matrix.postgres_major_version }} .
- name: Start Docker container
run: |
docker run --rm -d -p 5432:5432 -e "POSTGRES_PASSWORD=password" -v /home:/home epmlsop/bingo-postgres:${{ matrix.postgres_major_version }}-latest
- name: Install dev dependencies
run: |
pip install -r bingo/tests/requirements.txt
- name: Run Bingo tests
run: |
export PYTHONPATH=${{ github.workspace }}/bingo/bingo-elastic/python
pytest --tb=no --db postgres --junit-xml=junit_report.xml
working-directory: bingo/tests
- name: Login to DockerHub
if: startsWith(github.ref, 'refs/tags/indigo-')
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Publish Docker images
if: startsWith(github.ref, 'refs/tags/indigo-')
run: docker push epmlsop/bingo-postgres:${{ matrix.postgres_major_version }}-latest
- name: Publish Test Report
if: always()
uses: mikepenz/action-junit-report@v3
with:
report_paths: 'bingo/tests/junit_report.xml'
github_token: ${{ secrets.GITHUB_TOKEN }}
check_name: "bingo_postgres_${{ matrix.postgres_major_version }}_test_report"
build_bingo_postgres_windows_msvc_x86_64:
strategy:
fail-fast: false
matrix:
postgres_major_version: [ "12", "13", "14", "15" ]
runs-on: windows-latest
needs: static_analysis
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Setup Postgres
run: |
$pg_version = switch(${{ matrix.postgres_major_version }}) { "15" { "15.1" } "14" { "14.6" } "13" { "13.9" } "12" { "12.13" } }
curl -O https://get.enterprisedb.com/postgresql/postgresql-${pg_version}-1-windows-x64-binaries.zip
Expand-Archive postgresql-${pg_version}-1-windows-x64-binaries.zip
mv postgresql-${pg_version}-1-windows-x64-binaries/pgsql pgsql
cp bingo/postgres/patches/generic-msvc.h pgsql/include/server/port/atomics/generic-msvc.h
- name: Build bingo-postgres
run: |
mkdir build
cd build
cmake .. -DBUILD_BINGO_POSTGRES=ON -DBUILD_BINGO_SQLSERVER=OFF -DBUILD_BINGO_ORACLE=OFF -DBUILD_INDIGO=OFF -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_INDIGO_UTILS=OFF -DBUILD_BINGO_ELASTIC=OFF -DPostgreSQL_ROOT="$(resolve-path $pwd/../pgsql)"
cmake --build . --config Release --target package-bingo-postgres
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: bingo-postgres-${{ matrix.postgres_major_version }}-windows-x86_64
path: dist/bingo-postgres*.zip
build_bingo_postgres_macos_x86_64:
strategy:
fail-fast: false
matrix:
postgres_major_version: [ 12, 13, 14, 15 ]
runs-on: macos-13
needs: static_analysis
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Setup Postgres
run: |
case ${{ matrix.postgres_major_version }} in 15) pg_version=15.1;; 14) pg_version=14.6;; 13) pg_version=13.9;; 12) pg_version=12.13;; esac;
curl -O https://get.enterprisedb.com/postgresql/postgresql-${pg_version}-1-osx-binaries.zip
unzip postgresql-${pg_version}-1-osx-binaries.zip
mv pgsql/include/zlib.h pgsql/include/zlib.h.bck
- name: Build bingo-postgres
run: |
mkdir build
cd build
cmake .. -DBUILD_BINGO_POSTGRES=ON -DBUILD_BINGO_SQLSERVER=OFF -DBUILD_BINGO_ORACLE=OFF -DBUILD_INDIGO=OFF -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_INDIGO_UTILS=OFF -DBUILD_BINGO_ELASTIC=OFF -DPostgreSQL_ROOT="$(dirname $PWD)/pgsql" -DPostgreSQL_ADDITIONAL_VERSIONS=${{ matrix.postgres_major_version }}
cmake --build . --config Release --target package-bingo-postgres
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: bingo-postgres-${{ matrix.postgres_major_version }}-macos-x86_64
path: dist/bingo-postgres*.tgz
build_bingo_sqlserver_windows_msvc_x86_64:
strategy:
fail-fast: false
matrix:
os: [ windows-latest ]
runs-on: ${{ matrix.os }}
needs: static_analysis
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Build
run: |
mkdir build
cd build
cmake .. -DBUILD_BINGO_SQLSERVER=ON -DBUILD_BINGO_POSTGRES=OFF -DBUILD_BINGO_ORACLE=OFF -DBUILD_INDIGO=OFF -DBUILD_INDIGO_WRAPPERS=OFF -DBUILD_INDIGO_UTILS=OFF -DBUILD_BINGO_ELASTIC=OFF
cmake --build . --config Release --target package-bingo-sqlserver
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: bingo-sqlserver-${{ matrix.os }}-x86_64
path: dist/bingo-sqlserver*.zip
publish_indigo_to_pypi:
if: startsWith(github.ref, 'refs/tags/indigo-')
runs-on: ubuntu-latest
needs: [test_indigo_python_x86_64, test_indigo_java_x86_64, test_indigo_dotnet_x86_64, test_indigo_python_i386, test_indigo_java_i386, test_indigo_dotnet_i386, test_indigo_python_aarch64, test_indigo_java_aarch64, test_bingo_elastic_python_linux_x86_64, test_bingo_elastic_java_linux_x86_64, build_indigo_ketcher]
container: epmlsop/indigo-tester:latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Create folder for native libs
run: mkdir -p dist/lib
- name: Download native shared libraries
uses: actions/download-artifact@v3
with:
name: indigo-native-shared-libs
path: dist/lib
- name: Download Python wheels
uses: actions/download-artifact@v3
with:
name: indigo-python
path: dist/
- name: Download bingo-elastic-python
uses: actions/download-artifact@v3
with:
name: bingo-elastic-python
path: dist/
- name: Publish Python wheels to PyPI
env:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
run: |
twine upload -u __token__ -p ${PYPI_TOKEN} --skip-existing dist/*.whl
publish_indigo_to_nuget:
if: startsWith(github.ref, 'refs/tags/indigo-')
runs-on: ubuntu-latest
needs: [test_indigo_python_x86_64, test_indigo_java_x86_64, test_indigo_dotnet_x86_64, test_indigo_python_i386, test_indigo_java_i386, test_indigo_dotnet_i386, test_indigo_python_aarch64, test_indigo_java_aarch64, test_bingo_elastic_python_linux_x86_64, test_bingo_elastic_java_linux_x86_64, build_indigo_ketcher]
container: epmlsop/indigo-tester:latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Create folder for native libs
run: mkdir -p dist/lib
- name: Download native shared libraries
uses: actions/download-artifact@v3
with:
name: indigo-native-shared-libs
path: dist/lib
- name: Download .NET nupkg
uses: actions/download-artifact@v3
with:
name: indigo-dotnet
path: dist/
- name: Publish .NET nupkg to Nuget
env:
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
run: dotnet nuget push dist/*.nupkg --api-key ${NUGET_API_KEY} --source https://api.nuget.org/v3/index.json --skip-duplicate
publish_indigo_to_npm:
if: startsWith(github.ref, 'refs/tags/indigo-')
runs-on: ubuntu-latest
needs: [test_indigo_python_x86_64, test_indigo_java_x86_64, test_indigo_dotnet_x86_64, test_indigo_python_i386, test_indigo_java_i386, test_indigo_dotnet_i386, test_indigo_python_aarch64, test_indigo_java_aarch64, test_bingo_elastic_python_linux_x86_64, test_bingo_elastic_java_linux_x86_64, build_indigo_ketcher]
container: epmlsop/indigo-tester:latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Create folder for native libs
run: mkdir -p dist/lib
- name: Download native shared libraries
uses: actions/download-artifact@v3
with:
name: indigo-native-shared-libs
path: dist/lib
- name: Download indigo-ketcher NPM package
uses: actions/download-artifact@v3
with:
name: indigo-ketcher
path: dist/
- name: Publish indigo-ketcher to NPM
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_EMAIL: ${{ secrets.NPM_EMAIL }}
run: |
echo //registry.npmjs.org/:_authToken=${NPM_TOKEN} >> ~/.npmrc
echo email=${NPM_EMAIL} >> ~/.npmrc
echo always-auth=true >> ~/.npmrc
bash .ci/publish_npm.sh
publish_indigo_to_maven:
if: startsWith(github.ref, 'refs/tags/indigo-')
runs-on: ubuntu-latest
needs: [test_indigo_python_x86_64, test_indigo_java_x86_64, test_indigo_dotnet_x86_64, test_indigo_python_i386, test_indigo_java_i386, test_indigo_dotnet_i386, test_indigo_python_aarch64, test_indigo_java_aarch64, test_bingo_elastic_python_linux_x86_64, test_bingo_elastic_java_linux_x86_64, build_indigo_ketcher]
container: epmlsop/indigo-tester:latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Create folder for native libs
run: mkdir -p dist/lib
- name: Download native shared libraries
uses: actions/download-artifact@v3
with:
name: indigo-native-shared-libs
path: dist/lib
- name: Publish Java jars to Maven Central
env:
MAVEN_SETTINGS: ${{ secrets.MAVEN_SETTINGS }}
MAVEN_USER: ${{ secrets.MAVEN_USER }}
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
GPG_PRIVATE_KEY: ${{ secrets.MK_GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.MK_GPG_PASSPHRASE }}
run: |
pwd
set -eux
apt install -y gnupg
mkdir /root/.m2
echo ${MAVEN_SETTINGS} > /root/.m2/settings.xml
echo ${GPG_PRIVATE_KEY} > gpg.key
gpg --batch --import gpg.key
rm gpg.key
cd api/java
./mvnw -q deploy -P sign-artifacts -Dossrh.user=${MAVEN_USER} -Dossrh.password=${MAVEN_PASSWORD} -Dgpg.passphrase=${GPG_PASSPHRASE}
cd ${GITHUB_WORKSPACE}/bingo/bingo-elastic/java/
${GITHUB_WORKSPACE}/api/java/mvnw -DskipTests -Dmaven.test.skip=true -q deploy -P sign-artifacts -Dossrh.user=${MAVEN_USER} -Dossrh.password=${MAVEN_PASSWORD} -Dgpg.passphrase=${GPG_PASSPHRASE}
build_test_publish_indigo_service_old:
timeout-minutes: 60
runs-on: ubuntu-latest
needs: build_indigo_wrappers
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Download wrappers
uses: actions/download-artifact@v3
with:
name: indigo-python
path: utils/indigo-service/backend/lib/
- name: Build
run: docker build -f ./utils/indigo-service/backend/Dockerfile -t epmlsop/indigo-service:latest ./utils/indigo-service/backend
- name: Test Imago & Indigo
run: |
docker run --rm=true -d -p 8080:80 --name=indigo_service epmlsop/indigo-service:latest
sleep 10
docker logs indigo_service
docker ps
export INDIGO_SERVICE_URL=http://localhost:8080/v2
python3 utils/indigo-service/backend/service/tests/api/imago_test.py
python3 utils/indigo-service/backend/service/tests/api/indigo_test.py
docker logs indigo_service
docker stop indigo_service
# TODO: add indigo tests
# - name: Test
# run: |
# container_id=$(docker run --detach -it --rm -p 12345:80 epmlsop/indigo-service:latest)
# echo ${container_id}
# docker logs ${container_id}
# docker ps
# curl http://localhost:12345/v2/indigo/info
# docker logs ${container_id}
# docker stop ${container_id}
- name: Login to DockerHub
if: startsWith(github.ref, 'refs/tags/indigo-')
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Publish release
if: startsWith(github.ref, 'refs/tags/indigo-')
run: |
export tag=${{ github.ref }}
export clean_tag=${tag/refs\/tags\/indigo-/}
docker tag epmlsop/indigo-service:latest epmlsop/indigo-service:${clean_tag}
docker push epmlsop/indigo-service:${clean_tag}
docker push epmlsop/indigo-service:latest
build_test_publish_indigo_service_new:
timeout-minutes: 60
runs-on: ubuntu-latest
needs: build_indigo_wrappers
steps:
- name: Checkout
uses: actions/checkout@v3
with:
lfs: false
fetch-depth: 500
- name: Git fetch tags
run: |
git config --global --add safe.directory '*'
git fetch --tags -f
- name: Download wrappers
uses: actions/download-artifact@v3
with:
name: indigo-python
path: api/http/
- name: Build
run: docker build -f ./api/http/Dockerfile -t epmlsop/indigo-service:enhanced-latest ./api/http
- name: Login to DockerHub
if: startsWith(github.ref, 'refs/tags/indigo-')
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Publish release
if: startsWith(github.ref, 'refs/tags/indigo-')
run: |
export tag=${{ github.ref }}
export clean_tag=${tag/refs\/tags\/indigo-/}
docker tag epmlsop/indigo-service:enhanced-latest epmlsop/indigo-service:enhanced-${clean_tag}
docker push epmlsop/indigo-service:enhanced-${clean_tag}
docker push epmlsop/indigo-service:enhanced-latest