Skip to content

Publish conan packages #10

Publish conan packages

Publish conan packages #10

Workflow file for this run

name: Publish conan packages
on:
workflow_dispatch:
inputs:
ref:
required: true
type: string
description: Version number (eg v0.20.1)
upload_deps:
required: true
type: boolean
default: false
description: If true, publish slow-building deps as well
jobs:
# build_macos:
# # Not sure if we actually need x64 macos-latest
# runs-on: macos-latest
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# with:
# ref: releases/${{ inputs.ref }}
# - name: Install dependencies
# run: |
# cmake --version
# python --version
# ninja --version
# brew install buf
# python -m pip install conan
# - name: Set up python/conan
# env:
# CONAN_REMOTE_URL: ${{ secrets.conanRemote }}
# CONAN_LOGIN_USERNAME_VIAMCONAN: ${{ secrets.conanUsername}}
# CONAN_PASSWORD_VIAMCONAN: ${{ secrets.conanPassword }}
# run: |
# conan profile detect
# conan remote add viamconan $CONAN_REMOTE_URL
# conan remote auth -cc core:non_interactive=True viamconan
# - name: Create and upload package
# run: |
# # `buf` tries to read a CLI config file that we don't actually use located at
# # ~/.config/buf/config.yaml. We don't always have permission to access this
# # directory in CI, so we set the `BUF_CONFIG_DIR` to some other value that we
# # do have permissions for. See https://github.com/bufbuild/buf/issues/2698 for
# # more details.
# export BUF_CONFIG_DIR=$(mktemp -d)
# conan create . --build=missing -s:a compiler.cppstd=17 -o:a "&:shared=False"
# conan upload "viam-cpp-sdk/*" -r viamconan -c
# - name: Upload additional deps
# if: inputs.upload_deps
# run: |
# conan upload "boost/*" -r viamconan -c
# conan upload "grpc/*" -r viamconan -c
# conan upload "protobuf/*" -r viamconan -c
# build_linux:
# strategy:
# fail-fast: false
# matrix:
# runner: [buildjet-8vcpu-ubuntu-2204, buildjet-8vcpu-ubuntu-2204-arm]
# image: [ubuntu:22.04, debian:bookworm]
# runs-on: ${{ matrix.runner }}
# container:
# image: ${{ matrix.image }}
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# with:
# ref: releases/${{ inputs.ref }}
# - name: Show platform info
# run: |
# uname -a
# cat /etc/os-release
# - name: Install common deps
# run: |
# apt-get update
# apt-get -y dist-upgrade
# DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install \
# autoconf \
# automake \
# build-essential \
# ca-certificates \
# curl \
# doxygen \
# g++ \
# gdb \
# gnupg \
# gpg \
# less \
# ninja-build \
# python3 \
# python3-pip \
# python3-venv \
# software-properties-common \
# sudo \
# wget \
# c++ --version
# ldd --version
# - name: Install cmake (jammy)
# if: matrix.image == 'ubuntu:22.04'
# run: |
# sudo wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
# sudo echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
# apt-get update
# apt-get -y install cmake=3.25.2-0kitware1ubuntu22.04.1 cmake-data=3.25.2-0kitware1ubuntu22.04.1
# - name: Install cmake (bookworm)
# if: matrix.image == 'debian:bookworm'
# run: DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install cmake
# - name: Set up python/conan
# env:
# CONAN_REMOTE_URL: ${{ secrets.conanRemote }}
# CONAN_LOGIN_USERNAME_VIAMCONAN: ${{ secrets.conanUsername}}
# CONAN_PASSWORD_VIAMCONAN: ${{ secrets.conanPassword }}
# run: |
# python3 -m venv ./conan_venv
# . ./conan_venv/bin/activate
# pip install conan
# conan profile detect
# conan remote add viamconan $CONAN_REMOTE_URL
# conan remote auth -cc core:non_interactive=True viamconan
# - name: Create and upload package
# run: |
# . ./conan_venv/bin/activate
# conan create . --build=missing -s:a compiler.cppstd=17 -o:a "&:shared=False"
# conan upload "viam-cpp-sdk/*" -r viamconan -c
# - name: Upload additional deps
# if: inputs.upload_deps && !(matrix.runner == 'buildjet-8vcpu-ubuntu-2204' && matrix.image == 'ubuntu:22.04')
# run: |
# conan upload "boost/*" -r viamconan -c
# conan upload "grpc/*" -r viamconan -c
# conan upload "protobuf/*" -r viamconan -c
build_windows:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: releases/${{ inputs.ref }}
- name: Install dependencies
run: choco install -y conan git
- name: Set up python/conan
shell: powershell
run: |
Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1
refreshenv
conan profile detect
conan remote add viamconan $env:CONAN_REMOTE_URL
conan remote auth -cc core:non_interactive=True viamconan
env:
CONAN_REMOTE_URL: ${{ secrets.conanRemote }}
CONAN_LOGIN_USERNAME_VIAMCONAN: ${{ secrets.conanUsername}}
CONAN_PASSWORD_VIAMCONAN: ${{ secrets.conanPassword }}
CONAN_USER_HOME: c:/cache
CONAN_USER_HOME_SHORT: c:/cache/conan_shortpaths
- name: Create and upload package
shell: powershell
run: |
Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1
refreshenv
conan create . --build=missing -o "&:shared=False" -s compiler.cppstd=17
conan upload "viam-cpp-sdk/*" -r viamconan -c
env:
CONAN_USER_HOME: c:/cache
CONAN_USER_HOME_SHORT: c:/cache/conan_shortpaths
- name: Upload additional deps
if: inputs.upload_deps
shell: powershell
run: |
Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1
refreshenv
conan upload "boost/*" -r viamconan -c
conan upload "grpc/*" -r viamconan -c
conan upload "protobuf/*" -r viamconan -c
env:
CONAN_USER_HOME: c:/cache
CONAN_USER_HOME_SHORT: c:/cache/conan_shortpaths