mirror of
https://github.com/XRPLF/clio.git
synced 2026-09-28 07:58:10 +00:00
119 lines
3.6 KiB
YAML
119 lines
3.6 KiB
YAML
name: Upload Conan Dependencies
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "0 9 * * 1-5"
|
|
workflow_dispatch:
|
|
inputs:
|
|
force_source_build:
|
|
description: "Force source build of all dependencies"
|
|
required: false
|
|
default: false
|
|
type: boolean
|
|
force_upload:
|
|
description: "Force upload of all dependencies"
|
|
required: false
|
|
default: false
|
|
type: boolean
|
|
pull_request:
|
|
branches: [develop]
|
|
paths:
|
|
- .github/workflows/upload-conan-deps.yml
|
|
|
|
- .github/actions/conan/action.yml
|
|
- ".github/scripts/conan/**"
|
|
|
|
- conanfile.py
|
|
- conan.lock
|
|
- conan/profiles/**
|
|
push:
|
|
branches: [develop]
|
|
paths:
|
|
- .github/workflows/upload-conan-deps.yml
|
|
|
|
- .github/actions/conan/action.yml
|
|
- ".github/scripts/conan/**"
|
|
|
|
- conanfile.py
|
|
- conan.lock
|
|
- conan/profiles/**
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
jobs:
|
|
generate-matrix:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
|
|
- name: Calculate conan matrix
|
|
id: set-matrix
|
|
run: .github/scripts/conan/generate_matrix.py >>"${GITHUB_OUTPUT}"
|
|
|
|
upload-conan-deps:
|
|
name: Build ${{ matrix.compiler }} ${{ matrix.sanitizers }} ${{ matrix.build_type }}
|
|
|
|
needs: generate-matrix
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
|
|
max-parallel: 10
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
container: ${{ matrix.container != '' && fromJson(matrix.container) || null }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
|
|
- name: Prepare runner
|
|
uses: XRPLF/actions/prepare-runner@7bf7ceca5932114abdd0d43493c3c30c5a654e13
|
|
with:
|
|
enable_ccache: false
|
|
|
|
- name: Print build environment
|
|
uses: XRPLF/actions/print-build-env@59dec886e4afb05a1724443af08baccbc045b574
|
|
|
|
- name: Set compiler environment
|
|
if: ${{ runner.os == 'Linux' }}
|
|
uses: ./.github/actions/set-compiler-env
|
|
with:
|
|
compiler: ${{ matrix.compiler }}
|
|
|
|
- name: Setup conan
|
|
run: conan/init.sh
|
|
|
|
- name: Show conan profile
|
|
env:
|
|
SANITIZERS: ${{ matrix.sanitizers }}
|
|
run: conan profile show --profile:all ci
|
|
|
|
- name: Run conan
|
|
uses: ./.github/actions/conan
|
|
with:
|
|
sanitizers: ${{ matrix.sanitizers }}
|
|
# We check that everything builds fine from source on scheduled runs
|
|
# But we do build and upload packages with build=missing by default
|
|
force_conan_source_build: ${{ github.event_name == 'schedule' || github.event.inputs.force_source_build == 'true' }}
|
|
build_type: ${{ matrix.build_type }}
|
|
|
|
- name: Log into Conan remote
|
|
if: ${{ github.repository == 'XRPLF/clio' && github.event_name != 'pull_request' }}
|
|
run: conan remote login -p ${{ secrets.NEXUS_REMOTE_PASSWORD }} xrplf ${{ secrets.NEXUS_REMOTE_USERNAME }}
|
|
|
|
- name: Upload Conan packages
|
|
if: ${{ github.repository == 'XRPLF/clio' && github.event_name != 'pull_request' && github.event_name != 'schedule' }}
|
|
env:
|
|
FORCE_OPTION: ${{ github.event.inputs.force_upload == 'true' && '--force' || '' }}
|
|
CONAN_LOGIN_USERNAME_XRPLF: ${{ secrets.NEXUS_REMOTE_USERNAME }}
|
|
CONAN_PASSWORD_XRPLF: ${{ secrets.NEXUS_REMOTE_PASSWORD }}
|
|
run: conan upload "*" -r=xrplf --confirm ${FORCE_OPTION}
|