Update GHA #456
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: XmsCore-6.0 | |
on: [push, pull_request] | |
jobs: | |
# ---------------------------------------------------------------------------------------------- | |
# FLAKE | |
# ---------------------------------------------------------------------------------------------- | |
flake: | |
name: Flake Project | |
runs-on: ${{ matrix.platform }} | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [ubuntu-latest] | |
python-version: ['3.10'] | |
steps: | |
# Checkout Sources | |
- name: Checkout Source | |
uses: actions/checkout@v2 | |
# Setup Python | |
- name: Setup Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
# Install Python Dependencies | |
- name: Install Python Dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install flake8 flake8-docstrings flake8-bugbear flake8-import-order pep8-naming | |
# Flake Code | |
- name: Run Flake | |
run: | | |
flake8 --exclude .tox,.git,__pycache__,_package/tests/files/*,pydocs/source/conf.py,build,dist,tests/fixtures/*,*.pyc,*.egg-info,.cache,.eggs --ignore=D200,D212 --max-line-length=120 --docstring-convention google --isolated --import-order-style=appnexus --application-import-names=xms.core --application-package-names=xms --count --statistics _package | |
# ---------------------------------------------------------------------------------------------- | |
# MAC | |
# ---------------------------------------------------------------------------------------------- | |
mac: | |
name: Clang-14.0 (${{ matrix.build_type }}, ${{ matrix.python-version }}, Macos) | |
runs-on: ${{ matrix.platform }} | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [macos-13] | |
python-version: ['3.10'] | |
build_type: [Release, Debug] | |
env: | |
# Library Variables | |
LIBRARY_NAME: xmscore | |
XMS_VERSION: 6.0.0 | |
# Conan Variables | |
CONAN_REFERENCE: xmscore/6.0.0 | |
CONAN_ARCHS: x86_64 | |
CONAN_USERNAME: aquaveo | |
CONAN_CHANNEL: testing | |
CONAN_STABLE_BRANCH_PATTERN: 'we_should_never_use_this_string_for_a_branch_name' | |
CONAN_LOGIN_USERNAME: ${{ secrets.CONAN_USER_SECRET }} | |
CONAN_PASSWORD: ${{ secrets.CONAN_PASSWORD_SECRET }} | |
CONAN_REMOTES: https://conan.aquaveo.com | |
CONAN_BUILD_TYPES: ${{ matrix.build_type }} | |
CONAN_APPLE_CLANG_VERSIONS: '14.0' | |
# Aquapi Variables | |
AQUAPI_USERNAME: ${{ secrets.AQUAPI_USERNAME_SECRET }} | |
AQUAPI_PASSWORD: ${{ secrets.AQUAPI_PASSWORD_SECRET }} | |
AQUAPI_URL: ${{ secrets.AQUAPI_URL_DEV }} | |
# Python Variables | |
PYTHON_TARGET_VERSION: ${{ matrix.python-version }} | |
RELEASE_PYTHON: 'False' | |
steps: | |
# Checkout Sources | |
- name: Checkout Source | |
uses: actions/checkout@v2 | |
# Setup Python | |
- name: Setup Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
# Install Python Dependencies | |
- name: Install Python Dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install cython<3 conan==1.60.0 conan-package-tools==0.39.0 devpi-client wheel MarkupSafe==2.0.0 | |
python -m pip install -i https://public.aquapi.aquaveo.com/aquaveo/stable/+simple/ "xmsconan>=1.0.4,<2" | |
# Setup Conan | |
- name: Setup Conan Directory | |
run: conan user | |
- name: Set Conan Path | |
run: | | |
echo "CONAN_PATH=$(conan config get storage.path)" >> $GITHUB_ENV | |
# Get Tag Name (ONLY RUNS ON TAGS) | |
- name: Get Tag | |
id: gitTag | |
uses: little-core-labs/[email protected] | |
if: startsWith(github.ref, 'refs/tags/') | |
# Set Conan Version (ONLY RUNS ON TAGS) | |
- name: Set Conan Version | |
uses: allenevans/[email protected] | |
with: | |
CONAN_REFERENCE: 'xmscore/${{ steps.gitTag.outputs.tag }}' | |
XMS_VERSION: ${{ steps.gitTag.outputs.tag }} | |
CONAN_UPLOAD: https://conan.aquaveo.com | |
RELEASE_PYTHON: 'True' | |
if: startsWith(github.ref, 'refs/tags/') | |
# Check for release branch | |
- name: Get Branch Name | |
id: gitBranch | |
uses: nelonoel/[email protected] | |
- name: Change Channel and URL if Release Branch | |
uses: allenevans/[email protected] | |
with: | |
CONAN_CHANNEL: stable | |
AQUAPI_URL: ${{ secrets.AQUAPI_URL_STABLE }} | |
if: startsWith(github.ref, 'refs/tags/') && startsWith(env.BRANCH_NAME, ${{ env.XMS_VERSION }}) | |
# Build the Conan Package | |
- name: Build the Conan Packages | |
run: python build.py | |
# Zip Built Conan Packages | |
- name: Zip Conan Packages | |
run: | | |
tar czf ${{ github.workspace }}/${{ matrix.platform }}-Clang${{ matrix.compiler-version }}-${{ matrix.build_type }}.tar.gz ${{ env.CONAN_PATH }}/${{ env.LIBRARY_NAME }}/${{ env.XMS_VERSION }}/aquaveo/${{ env.CONAN_CHANNEL}}/package | |
- name: Add Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.platform }}-Clang${{ matrix.compiler-version }}-${{ matrix.build_type }} | |
path: ${{ github.workspace }}/${{ matrix.platform }}-Clang${{ matrix.compiler-version }}-${{ matrix.build_type }}.tar.gz | |
# Get the Release Data | |
- name: Get Release | |
id: git_release | |
uses: bruceadams/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.AQUAVEO_GITHUB_TOKEN }} | |
if: startsWith(github.ref, 'refs/tags/') | |
# Upload Zipped Conan Packages | |
- name: Upload Zipped Conan Packages | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.AQUAVEO_GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.git_release.outputs.upload_url }} | |
asset_path: ${{ github.workspace }}/${{ matrix.platform }}-Clang${{ matrix.compiler-version }}-${{ matrix.build_type }}.tar.gz | |
asset_name: ${{ matrix.platform }}-Clang${{ matrix.compiler-version }}-${{ matrix.build_type }}.tar.gz | |
asset_content_type: application/zip | |
if: startsWith(github.ref, 'refs/tags/') | |
# ---------------------------------------------------------------------------------------------- | |
# LINUX | |
# ---------------------------------------------------------------------------------------------- | |
linux: | |
name: GCC-${{ matrix.compiler-version }} (${{ matrix.build_type }}, ${{ matrix.python-version }}, Linux) | |
runs-on: ${{ matrix.platform }} | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [ubuntu-latest] | |
python-version: ['3.10'] | |
compiler-version: [7] | |
build_type: [Release, Debug] | |
env: | |
# Library Variables | |
LIBRARY_NAME: xmscore | |
XMS_VERSION: 6.0.0 | |
# Conan Variables | |
CONAN_REFERENCE: xmscore/6.0.0 | |
CONAN_ARCHS: x86_64 | |
CONAN_USERNAME: aquaveo | |
CONAN_CHANNEL: testing | |
CONAN_STABLE_BRANCH_PATTERN: 'we_should_never_use_this_string_for_a_branch_name' | |
CONAN_LOGIN_USERNAME: ${{ secrets.CONAN_USER_SECRET }} | |
CONAN_PASSWORD: ${{ secrets.CONAN_PASSWORD_SECRET }} | |
CONAN_REMOTES: https://conan.aquaveo.com | |
CONAN_BUILD_TYPES: ${{ matrix.build_type }} | |
CONAN_GCC_VERSIONS: ${{ matrix.compiler-version }} | |
CONAN_DOCKER_IMAGE: docker.aquaveo.com/aquaveo/conan-docker/conan-gcc${{ matrix.compiler-version }}-py${{ matrix.python-version }}:latest | |
CONAN_PIP_INSTALL: 'conan-package-tools==0.35.1' | |
CONAN_PIP_PACKAGE: 'conan==1.41.0' | |
# Aquapi Variables | |
AQUAPI_USERNAME: ${{ secrets.AQUAPI_USERNAME_SECRET }} | |
AQUAPI_PASSWORD: ${{ secrets.AQUAPI_PASSWORD_SECRET }} | |
AQUAPI_URL: ${{ secrets.AQUAPI_URL_DEV }} | |
# Python Variables | |
PYTHON_TARGET_VERSION: ${{ matrix.python-version }} | |
RELEASE_PYTHON: 'False' | |
steps: | |
# Checkout Sources | |
- name: Checkout Source | |
uses: actions/checkout@v2 | |
# Setup Python | |
- name: Setup Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
# Install Python Dependencies | |
- name: Install Python Dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install conan==1.41.0 conan-package-tools==0.35.1 devpi-client wheel MarkupSafe==2.0.0 | |
python -m pip install -i https://public.aquapi.aquaveo.com/aquaveo/stable/+simple/ "xmsconan>=1.0.4,<2" | |
# Login to Aquaveo Docker | |
- name: Login to Aquaveo Docker | |
run: sudo -E docker login -u ${{ secrets.AQUAVEO_DOCKER_USERNAME_SECRET }} -p ${{ secrets.AQUAVEO_DOCKER_TOKEN }} docker.aquaveo.com | |
shell: bash | |
# Setup Conan | |
- name: Setup Conan Directory | |
run: conan user | |
- name: Set Conan Path | |
run: | | |
echo "CONAN_PATH=$(conan config get storage.path)" >> $GITHUB_ENV | |
mkdir -p $(conan config get storage.path) | |
- name: Set Conan Docker Options | |
uses: allenevans/[email protected] | |
with: | |
CONAN_DOCKER_RUN_OPTIONS: "-v '${{ env.CONAN_PATH }}:/home/conan/.conan/data'" | |
# Get Tag Name | |
- name: Get Tag | |
id: gitTag | |
uses: little-core-labs/[email protected] | |
if: startsWith(github.ref, 'refs/tags/') | |
# Set Conan Version | |
- name: Set Conan Version | |
uses: allenevans/[email protected] | |
with: | |
CONAN_REFERENCE: 'xmscore/${{ steps.gitTag.outputs.tag }}' | |
XMS_VERSION: ${{ steps.gitTag.outputs.tag }} | |
CONAN_UPLOAD: https://conan.aquaveo.com | |
RELEASE_PYTHON: 'True' | |
if: startsWith(github.ref, 'refs/tags/') | |
# Check for release branch | |
- name: Get Branch Name | |
id: gitBranch | |
uses: nelonoel/[email protected] | |
- name: Change Channel and URL if Release Branch | |
uses: allenevans/[email protected] | |
with: | |
CONAN_CHANNEL: stable | |
AQUAPI_URL: ${{ secrets.AQUAPI_URL_STABLE }} | |
if: startsWith(github.ref, 'refs/tags/') && startsWith(env.BRANCH_NAME, ${{ env.XMS_VERSION }}) | |
# Build the Conan Package | |
- name: Build the Conan Packages | |
run: | | |
chmod -R 777 ${{ env.CONAN_PATH }} | |
python build.py | |
# Zip Conan Package | |
- name: Zip Conan Packages | |
run: | | |
tar czf ${{ github.workspace }}/${{ matrix.platform }}-GCC${{ matrix.compiler-version }}-${{ matrix.build_type }}.tar.gz ${{ env.CONAN_PATH }}/${{ env.LIBRARY_NAME }}/${{ env.XMS_VERSION }}/aquaveo/${{ env.CONAN_CHANNEL}}/package | |
- name: Add Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.platform }}-Clang${{ matrix.compiler-version }}-${{ matrix.build_type }} | |
path: ${{ github.workspace }}/${{ matrix.platform }}-GCC${{ matrix.compiler-version }}-${{ matrix.build_type }}.tar.gz | |
# Get the Release Data | |
- name: Get Release | |
id: git_release | |
uses: bruceadams/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.AQUAVEO_GITHUB_TOKEN }} | |
if: startsWith(github.ref, 'refs/tags/') | |
# Upload Zipped Conan Packages | |
- name: Upload Zipped Conan Packages | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.AQUAVEO_GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.git_release.outputs.upload_url }} | |
asset_path: ${{ github.workspace }}/${{ matrix.platform }}-GCC${{ matrix.compiler-version }}-${{ matrix.build_type }}.tar.gz | |
asset_name: ${{ matrix.platform }}-GCC${{ matrix.compiler-version }}-${{ matrix.build_type }}.tar.gz | |
asset_content_type: application/zip | |
if: startsWith(github.ref, 'refs/tags/') | |
# ---------------------------------------------------------------------------------------------- | |
# WINDOWS | |
# ---------------------------------------------------------------------------------------------- | |
windows: | |
name: Visual Studio ${{ matrix.compiler-version }} (${{ matrix.build_type }}, ${{ matrix.python-version }}, Windows) | |
runs-on: ${{ matrix.platform }} | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [windows-2019] | |
python-version: ['3.10'] | |
compiler-version: [16] | |
build_type: [Release, Debug] | |
env: | |
MATRIX_NAME: ${{ matrix.platform }}-VS${{ matrix.compiler-version }}-${{ matrix.build_type }} | |
# Library Variables | |
LIBRARY_NAME: xmscore | |
XMS_VERSION: 6.0.0 | |
# Conan Variables | |
CONAN_REFERENCE: xmscore/6.0.0 | |
CONAN_ARCHS: x86_64 | |
CONAN_USERNAME: aquaveo | |
CONAN_CHANNEL: testing | |
CONAN_STABLE_BRANCH_PATTERN: 'we_should_never_use_this_string_for_a_branch_name' | |
CONAN_LOGIN_USERNAME: ${{ secrets.CONAN_USER_SECRET }} | |
CONAN_PASSWORD: ${{ secrets.CONAN_PASSWORD_SECRET }} | |
CONAN_REMOTES: https://conan.aquaveo.com | |
CONAN_BUILD_TYPES: ${{ matrix.build_type }} | |
CONAN_VISUAL_VERSIONS: ${{ matrix.compiler-version }} | |
# Aquapi Variables | |
AQUAPI_USERNAME: ${{ secrets.AQUAPI_USERNAME_SECRET }} | |
AQUAPI_PASSWORD: ${{ secrets.AQUAPI_PASSWORD_SECRET }} | |
AQUAPI_URL: ${{ secrets.AQUAPI_URL_DEV }} | |
# Python Variables | |
PYTHON_TARGET_VERSION: ${{ matrix.python-version }} | |
RELEASE_PYTHON: 'False' | |
steps: | |
# Checkout Sources | |
- name: Checkout Source | |
uses: actions/checkout@v2 | |
# Setup Python | |
- name: Setup Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
# Install Python Dependencies | |
- name: Install Python Dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install conan==1.60.0 conan-package-tools==0.35.1 devpi-client wheel MarkupSafe==2.0.0 | |
python -m pip install -i https://public.aquapi.aquaveo.com/aquaveo/stable/+simple/ "xmsconan>=1.0.4,<2" | |
# Setup Visual Studio | |
- name: Setup Visual Studio | |
uses: microsoft/[email protected] | |
with: | |
vs-version: ${{ matrix.compiler-version }} | |
# Setup Conan | |
- name: Setup Conan Directory | |
run: conan user | |
shell: cmd | |
- name: Set Conan Path | |
run: | | |
echo "CONAN_PATH=$(conan config get storage.path)" >> $env:GITHUB_ENV | |
shell: powershell | |
# Get Tag Name | |
- name: Get Tag | |
id: gitTag | |
uses: little-core-labs/[email protected] | |
if: startsWith(github.ref, 'refs/tags/') | |
# Set Conan Version | |
- name: Set Conan Version | |
uses: allenevans/[email protected] | |
with: | |
CONAN_REFERENCE: 'xmscore/${{ steps.gitTag.outputs.tag }}' | |
XMS_VERSION: ${{ steps.gitTag.outputs.tag }} | |
CONAN_UPLOAD: https://conan.aquaveo.com | |
RELEASE_PYTHON: 'True' | |
if: startsWith(github.ref, 'refs/tags/') | |
# Check for release branch | |
- name: Get Branch Name | |
id: gitBranch | |
uses: nelonoel/[email protected] | |
- name: Change Channel and URL if Release Branch | |
uses: allenevans/[email protected] | |
with: | |
CONAN_CHANNEL: stable | |
AQUAPI_URL: ${{ secrets.AQUAPI_URL_STABLE }} | |
if: startsWith(github.ref, 'refs/tags/') && startsWith(env.BRANCH_NAME, ${{ env.XMS_VERSION }}) | |
# Build the Conan Package | |
- name: Build the Conan Packages | |
run: python build.py | |
shell: cmd | |
# Zip Packages | |
- name: Zip Conan Packages | |
run: | | |
tar czf ${{ github.workspace }}/${{ env.MATRIX_NAME }}.tar.gz ${{ env.CONAN_PATH }}/${{ env.LIBRARY_NAME }}/${{ env.XMS_VERSION }}/aquaveo/${{ env.CONAN_CHANNEL}}/package | |
- name: Add Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.MATRIX_NAME }} | |
path: ${{ github.workspace }}/${{ env.MATRIX_NAME }}.tar.gz | |
# Get the Release Data | |
- name: Get Release | |
id: git_release | |
uses: bruceadams/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.AQUAVEO_GITHUB_TOKEN }} | |
if: startsWith(github.ref, 'refs/tags/') | |
# Upload Zipped Conan Packages | |
- name: Upload Zipped Conan Packages | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.AQUAVEO_GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.git_release.outputs.upload_url }} | |
asset_path: ${{ github.workspace }}/${{ env.MATRIX_NAME }}.tar.gz | |
asset_name: ${{ env.MATRIX_NAME }}.tar.gz | |
asset_content_type: application/zip | |
if: startsWith(github.ref, 'refs/tags/') |