mirror of
				https://github.com/XRPLF/rippled.git
				synced 2025-11-04 11:15:56 +00:00 
			
		
		
		
	This change reduces the number of cores used to build and test, as using all cores may be contributing to occasional build and test failures. Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
		
			
				
	
	
		
			108 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Upload Conan Dependencies
 | 
						|
 | 
						|
on:
 | 
						|
  schedule:
 | 
						|
    - cron: "0 3 * * 2-6"
 | 
						|
  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:
 | 
						|
      # This allows testing changes to the upload workflow in a PR
 | 
						|
      - .github/workflows/upload-conan-deps.yml
 | 
						|
  push:
 | 
						|
    branches: [develop]
 | 
						|
    paths:
 | 
						|
      - .github/workflows/upload-conan-deps.yml
 | 
						|
      - .github/workflows/reusable-strategy-matrix.yml
 | 
						|
      - .github/actions/build-deps/action.yml
 | 
						|
      - .github/actions/setup-conan/action.yml
 | 
						|
      - ".github/scripts/strategy-matrix/**"
 | 
						|
      - conanfile.py
 | 
						|
      - conan.lock
 | 
						|
 | 
						|
env:
 | 
						|
  CONAN_REMOTE_NAME: xrplf
 | 
						|
  CONAN_REMOTE_URL: https://conan.ripplex.io
 | 
						|
  NPROC_SUBTRACT: 2
 | 
						|
 | 
						|
concurrency:
 | 
						|
  group: ${{ github.workflow }}-${{ github.ref }}
 | 
						|
  cancel-in-progress: true
 | 
						|
 | 
						|
jobs:
 | 
						|
  # Generate the strategy matrix to be used by the following job.
 | 
						|
  generate-matrix:
 | 
						|
    uses: ./.github/workflows/reusable-strategy-matrix.yml
 | 
						|
    with:
 | 
						|
      strategy_matrix: ${{ github.event_name == 'pull_request' && 'minimal' || 'all' }}
 | 
						|
 | 
						|
  # Build and upload the dependencies for each configuration.
 | 
						|
  run-upload-conan-deps:
 | 
						|
    needs:
 | 
						|
      - generate-matrix
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
 | 
						|
      max-parallel: 10
 | 
						|
    runs-on: ${{ matrix.architecture.runner }}
 | 
						|
    container: ${{ contains(matrix.architecture.platform, 'linux') && format('ghcr.io/xrplf/ci/{0}-{1}:{2}-{3}-sha-{4}', matrix.os.distro_name, matrix.os.distro_version, matrix.os.compiler_name, matrix.os.compiler_version, matrix.os.image_sha) || null }}
 | 
						|
    steps:
 | 
						|
      - name: Cleanup workspace
 | 
						|
        if: ${{ runner.os == 'macOS' }}
 | 
						|
        uses: XRPLF/actions/.github/actions/cleanup-workspace@3f044c7478548e3c32ff68980eeb36ece02b364e
 | 
						|
 | 
						|
      - name: Checkout repository
 | 
						|
        uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
						|
 | 
						|
      - name: Prepare runner
 | 
						|
        uses: XRPLF/actions/.github/actions/prepare-runner@638e0dc11ea230f91bd26622fb542116bb5254d5
 | 
						|
        with:
 | 
						|
          disable_ccache: false
 | 
						|
 | 
						|
      - name: Print build environment
 | 
						|
        uses: ./.github/actions/print-env
 | 
						|
 | 
						|
      - name: Get number of processors
 | 
						|
        uses: XRPLF/actions/.github/actions/get-nproc@046b1620f6bfd6cd0985dc82c3df02786801fe0a
 | 
						|
        id: nproc
 | 
						|
        with:
 | 
						|
          subtract: ${{ env.NPROC_SUBTRACT }}
 | 
						|
 | 
						|
      - name: Setup Conan
 | 
						|
        uses: ./.github/actions/setup-conan
 | 
						|
        with:
 | 
						|
          conan_remote_name: ${{ env.CONAN_REMOTE_NAME }}
 | 
						|
          conan_remote_url: ${{ env.CONAN_REMOTE_URL }}
 | 
						|
 | 
						|
      - name: Build dependencies
 | 
						|
        uses: ./.github/actions/build-deps
 | 
						|
        with:
 | 
						|
          build_dir: .build
 | 
						|
          build_nproc: ${{ steps.nproc.outputs.nproc }}
 | 
						|
          build_type: ${{ matrix.build_type }}
 | 
						|
          force_build: ${{ github.event_name == 'schedule' || github.event.inputs.force_source_build == 'true' }}
 | 
						|
          # Set the verbosity to "quiet" for Windows to avoid an excessive
 | 
						|
          # amount of logs. For other OSes, the "verbose" logs are more useful.
 | 
						|
          log_verbosity: ${{ runner.os == 'Windows' && 'quiet' || 'verbose' }}
 | 
						|
 | 
						|
      - name: Log into Conan remote
 | 
						|
        if: ${{ github.repository_owner == 'XRPLF' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') }}
 | 
						|
        run: conan remote login "${CONAN_REMOTE_NAME}" "${{ secrets.CONAN_REMOTE_USERNAME }}" --password "${{ secrets.CONAN_REMOTE_PASSWORD }}"
 | 
						|
 | 
						|
      - name: Upload Conan packages
 | 
						|
        if: ${{ github.repository_owner == 'XRPLF' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch') }}
 | 
						|
        env:
 | 
						|
          FORCE_OPTION: ${{ github.event.inputs.force_upload == 'true' && '--force' || '' }}
 | 
						|
        run: conan upload "*" --remote="${CONAN_REMOTE_NAME}" --confirm ${FORCE_OPTION}
 |