mirror of
https://github.com/XRPLF/rippled.git
synced 2026-06-08 19:26:45 +00:00
The refs as previously used pointed to the source branch, not the target branch. However, determining the target branch is different depending on the GitHub event. The pull request logic was incorrect and needed to be fixed, and the logic inside the workflow could be simplified. Both modifications have been made in this commit.
104 lines
3.5 KiB
YAML
104 lines
3.5 KiB
YAML
# This workflow exports the built libxrpl package to the Conan remote.
|
|
name: Upload Conan recipe
|
|
|
|
# This workflow can only be triggered by other workflows.
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
remote_name:
|
|
description: "The name of the Conan remote to use."
|
|
required: false
|
|
type: string
|
|
default: xrplf
|
|
remote_url:
|
|
description: "The URL of the Conan endpoint to use."
|
|
required: false
|
|
type: string
|
|
default: https://conan.ripplex.io
|
|
|
|
secrets:
|
|
remote_username:
|
|
description: "The username for logging into the Conan remote."
|
|
required: true
|
|
remote_password:
|
|
description: "The password for logging into the Conan remote."
|
|
required: true
|
|
|
|
outputs:
|
|
recipe_ref:
|
|
description: "The Conan recipe reference ('name/version') that was uploaded."
|
|
value: ${{ jobs.upload.outputs.ref }}
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}-upload-recipe
|
|
cancel-in-progress: true
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
jobs:
|
|
upload:
|
|
runs-on: ubuntu-latest
|
|
container: ghcr.io/xrplf/ci/ubuntu-noble:gcc-13-sha-5dd7158
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Generate build version number
|
|
id: version
|
|
uses: ./.github/actions/generate-version
|
|
|
|
- name: Set up Conan
|
|
uses: ./.github/actions/setup-conan
|
|
with:
|
|
remote_name: ${{ inputs.remote_name }}
|
|
remote_url: ${{ inputs.remote_url }}
|
|
|
|
- name: Log into Conan remote
|
|
env:
|
|
REMOTE_NAME: ${{ inputs.remote_name }}
|
|
REMOTE_USERNAME: ${{ secrets.remote_username }}
|
|
REMOTE_PASSWORD: ${{ secrets.remote_password }}
|
|
run: conan remote login "${REMOTE_NAME}" "${REMOTE_USERNAME}" --password "${REMOTE_PASSWORD}"
|
|
|
|
- name: Upload Conan recipe (version)
|
|
env:
|
|
REMOTE_NAME: ${{ inputs.remote_name }}
|
|
run: |
|
|
conan export . --version=${{ steps.version.outputs.version }}
|
|
conan upload --confirm --check --remote="${REMOTE_NAME}" xrpl/${{ steps.version.outputs.version }}
|
|
|
|
# When this workflow is triggered by a push event, it will always be when merging into the
|
|
# 'develop' branch, see on-trigger.yml.
|
|
- name: Upload Conan recipe (develop)
|
|
if: ${{ github.event_name == 'push' }}
|
|
env:
|
|
REMOTE_NAME: ${{ inputs.remote_name }}
|
|
run: |
|
|
conan export . --version=develop
|
|
conan upload --confirm --check --remote="${REMOTE_NAME}" xrpl/develop
|
|
|
|
# When this workflow is triggered by a pull request event, it will always be when merging into
|
|
# one of the 'release' branches, see on-pr.yml.
|
|
- name: Upload Conan recipe (rc)
|
|
if: ${{ github.event_name == 'pull_request' }}
|
|
env:
|
|
REMOTE_NAME: ${{ inputs.remote_name }}
|
|
run: |
|
|
conan export . --version=rc
|
|
conan upload --confirm --check --remote="${REMOTE_NAME}" xrpl/rc
|
|
|
|
# When this workflow is triggered by a tag event, it will always be when tagging a final
|
|
# release, see on-tag.yml.
|
|
- name: Upload Conan recipe (release)
|
|
if: ${{ github.event_name == 'tag' }}
|
|
env:
|
|
REMOTE_NAME: ${{ inputs.remote_name }}
|
|
run: |
|
|
conan export . --version=release
|
|
conan upload --confirm --check --remote="${REMOTE_NAME}" xrpl/release
|
|
|
|
outputs:
|
|
ref: xrpl/${{ steps.version.outputs.version }}
|