Skip to content

Move configs to file so they can be reused across workflows #16

Move configs to file so they can be reused across workflows

Move configs to file so they can be reused across workflows #16

Workflow file for this run

name: Debian
on:
push:
paths:
- .github/workflows/debian.yml
- recipes
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash
env:
# Note that `conan user` implicitly uses the environment variables
# `CONAN_LOGIN_USERNAME_<REMOTE>` and `CONAN_PASSWORD_<REMOTE>`, see also
# https://docs.conan.io/2/reference/environment.html#remote-login-variables.
CONAN_REMOTE_URL: https://conan.ripplex.io
CONAN_REMOTE_NAME: xrplf
CONAN_LOGIN_USERNAME_XRPLF: ${{ secrets.CONAN_USERNAME }}
CONAN_PASSWORD_XRPLF: ${{ secrets.CONAN_PASSWORD }}
jobs:
build:
strategy:
max-parallel: 10
matrix:
architecture:
- runner: ubuntu-24.04
# - runner: ubuntu-24.04-arm
docker:
- image: ghcr.io/xrplf/ci/debian-bookworm:gcc-12
# - image: ghcr.io/xrplf/ci/debian-bookworm:gcc-13
# - image: ghcr.io/xrplf/ci/debian-bookworm:gcc-14
# - image: ghcr.io/xrplf/ci/debian-bookworm:clang-16
# - image: ghcr.io/xrplf/ci/debian-bookworm:clang-17
# - image: ghcr.io/xrplf/ci/debian-bookworm:clang-18
# - image: ghcr.io/xrplf/ci/debian-bookworm:clang-19
# - image: ghcr.io/xrplf/ci/debian-bookworm:clang-20
build:
- type: Debug
# - type: Release
package:
# - name: boost
# version: 1.86.0
# directory: all
- name: date
version: 3.0.4
directory: all
# - name: doctest
# version: 2.4.11
# directory: 2.x.x
# - name: grpc
# version: 1.72.0
# directory: all
# - name: libarchive
# version: 3.8.1
# directory: all
# - name: lz4
# version: 1.10.0
# directory: all
# - name: nudb
# version: 2.0.9
# directory: all
# - name: openssl
# version: 1.1.1w
# directory: 1.x.x
# - name: protobuf
# version: 6.30.1
# directory: all
# - name: rocksdb
# version: 10.0.1
# directory: all
# - name: sqlite3
# version: 3.49.1
# directory: all
# - name: xxhash
# version: 0.8.3
# directory: all
# - name: zlib
# version: 1.3.1
# directory: all
runs-on: ${{ matrix.architecture.runner }}
container: ${{ matrix.docker.image }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Configure Conan
run: |
cat config/global.conf >> $(conan config home)/global.conf
conan config install profiles/ -tf $(conan config home)/profiles/
- name: Add Conan remote
run: |
conan remote list
if conan remote list | grep -q '${{ env.CONAN_REMOTE_NAME }}'; then
conan remote remove ${{ env.CONAN_REMOTE_NAME }}
echo "Removed existing conan remote '${{ env.CONAN_REMOTE_NAME }}'."
fi
conan remote add --index 0 ${{ env.CONAN_REMOTE_NAME }} ${{ env.CONAN_REMOTE_URL }}
echo "Added new conan remote '${{ env.CONAN_REMOTE_NAME }}' at ${{ env.CONAN_REMOTE_URL }}."
- name: Verify Conan remote
run: |
conan remote auth ${{ env.CONAN_REMOTE_NAME }} --force
conan remote list-users
- name: Build the recipe
working-directory: recipes/${{ matrix.package.name }}/${{ matrix.package.directory }}
run: |
conan create . \
--version ${{ matrix.package.version }} \
--build=missing \
--settings:all=build_type=${{ matrix.build.type }} \
--update \
$(cat config/options.conf | tr '\n' ' ')
- name: Upload the recipe (dry-run)
if: ${{ github.ref_type == 'branch' && github.ref_name != github.event.repository.default_branch }}
run: |
conan upload '${{ matrix.package.name }}' \
--remote ${{ env.CONAN_REMOTE_NAME }} \
--confirm \
--dry-run
- name: Upload the recipe
if: ${{ github.ref_type == 'branch' && github.ref_name == github.event.repository.default_branch }}
run: |
conan upload '${{ matrix.package.name }}' \
--remote ${{ env.CONAN_REMOTE_NAME }} \
--confirm