Skip to content

initial Conan publish job (#492) #1

initial Conan publish job (#492)

initial Conan publish job (#492) #1

Workflow file for this run

name: Publish conan packages

Check failure on line 1 in .github/workflows/conan-publish.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/conan-publish.yml

Invalid workflow file

(Line: 66, Col: 15): Unexpected value '', (Line: 67, Col: 12): Unrecognized named-value: 'matrix'. Located at position 1 within expression: matrix.runs_on, (Line: 67, Col: 12): Unexpected value '${{ matrix.runs_on }}', (Line: 69, Col: 5): Unexpected value 'image', (Line: 69, Col: 5): There's not enough info to determine what you meant. Add one of these properties: cancel-timeout-minutes, container, continue-on-error, defaults, env, environment, outputs, runs-on, secrets, services, snapshot, steps, timeout-minutes, uses, with, (Line: 71, Col: 5): Unexpected value 'matrix', (Line: 71, Col: 5): Required property is missing: runs-on
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 profile detect
conan create . --build=missing -s:a compiler.cppstd=17 -s:a "&:shared=False"
conan upload "viam-cpp-sdk/*" -r viamconan
- name: Upload additional deps
if: inputs.upload_deps
run: |
conan upload "boost/*" -r viamconan
conan upload "grpc/*" -r viamconan
conan upload "protobuf/*" -r viamconan
build_linux:
runs-on: ${{ matrix.runs_on }}
container:
image: ${{ matrix.image }}
strategy:
matrix:
- runs_on: [buildjet-8vcpu-ubuntu-2204, buildjet-8vcpu-ubuntu-2204-arm]
- image: [ubuntu:22.04, debian:bookworm]
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 \
- 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
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 -s:a "&:shared=False"
conan upload "viam-cpp-sdk/*" -r viamconan
- name: Upload additional deps
if: inputs.upload_deps
run: |
conan upload "boost/*" -r viamconan
conan upload "grpc/*" -r viamconan
conan upload "protobuf/*" -r viamconan