# 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.xrplf.org/repository/conan/ 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/xrpld/nix-ubuntu:sha-3122de8 env: REMOTE_NAME: ${{ inputs.remote_name }} CONAN_LOGIN_USERNAME_XRPLF: ${{ secrets.remote_username }} CONAN_PASSWORD_XRPLF: ${{ secrets.remote_password }} steps: - name: Checkout repository uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - 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 run: conan remote login "${REMOTE_NAME}" "${CONAN_LOGIN_USERNAME_XRPLF}" --password "${CONAN_PASSWORD_XRPLF}" - name: Upload Conan recipe (version) 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' }} 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' }} run: | conan export . --version=rc conan upload --confirm --check --remote="${REMOTE_NAME}" xrpl/rc # When this workflow is triggered by a push event, it will always be when tagging a final # release, see on-tag.yml. - name: Upload Conan recipe (release) if: ${{ startsWith(github.ref, 'refs/tags/') }} run: | conan export . --version=release conan upload --confirm --check --remote="${REMOTE_NAME}" xrpl/release outputs: ref: xrpl/${{ steps.version.outputs.version }}