Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/actions/check_cache/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Check cache
description: Check is cache exists
inputs:
profile:
description: conan-profile
required: true
default: default

outputs:
exists:
value: ${{steps.check-cache.outputs.cache_hit}}

runs:
using: composite
steps:
- name: Cache conan packages
id: check-cache
env:
GH_TOKEN: ${{ github.token }}
shell: bash
run: |
gh extension install actions/gh-actions-cache
KEY=${{ inputs.profile }}
CACHE_HIT=$(gh actions-cache list --key $KEY | grep -q $KEY && echo 'true' || echo 'false')
echo "cache_hit=$CACHE_HIT" >> $GITHUB_OUTPUT
echo "Cache for profile ${{inputs.profile}}: ${CACHE_HIT}"

26 changes: 26 additions & 0 deletions .github/actions/conan_build/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Conan build
description: Build project using conan
inputs:
profile:
description: conan-profile
required: true
default: default

runs:
using: composite
steps:
- uses: ./.github/actions/enable_conan
with:
profile: ${{inputs.profile}}

- name: git add safe dir
shell: bash
run: git config --global --add safe.directory $GITHUB_WORKSPACE

- name: Install profiles
shell: bash
run: conan config install CI/conan

- name: Conan build
shell: bash
run: conan build . --profile:build=${{inputs.profile}} --profile:host=${{inputs.profile}} --build=missing --output-folder=.
38 changes: 38 additions & 0 deletions .github/actions/deploy/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Test, Sign and Attestation
description: Test, sign and attestation artifacts
inputs:
builddir:
description: build directory
required: true

artifact:
description: artifact name
required: true

attestation:
description: need attestation
type: boolean
default: false

runs:
using: composite
steps:
- uses: ./.github/actions/tests
with:
testdir: ${{inputs.builddir}}
name: ${{inputs.artifact}} tests

- uses: ./.github/actions/pack
id: pack
with:
packdir: ${{inputs.builddir}}
artifact: ${{inputs.artifact}}

- name: Attest
if: ${{inputs.attestation == 'true'}}
uses: actions/attest-build-provenance@v1
with:
subject-path: |
${{inputs.builddir}}/*.zip
${{inputs.builddir}}/*.rpm
${{inputs.builddir}}/*.deb
61 changes: 61 additions & 0 deletions .github/actions/deploy_with_sign/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Test, Sign and Attestation
description: Test, sign and attestation artifacts
inputs:
sign:
description: sign policy
type: string
default: test-signing

builddir:
description: build directory
required: true

signeddir:
description: directory for signed artifacts
reguired: true

artifact:
description: artifact name
required: true

token:
description: token for sign api
required: true

runs:
using: composite
steps:
- uses: ./.github/actions/tests
with:
testdir: ${{inputs.builddir}}
name: ${{inputs.artifact}} tests

- uses: ./.github/actions/pack
id: pack
with:
packdir: ${{inputs.builddir}}
artifact: ${{inputs.artifact}}

- uses: ./.github/actions/sign
id: sign
with:
artifactid: ${{steps.pack.outputs.artifactid}}
output: ${{inputs.signeddir}}
policy: ${{inputs.sign}}
token: ${{inputs.token}}

- name: Attest
if: ${{inputs.sign != ''}}
uses: actions/attest-build-provenance@v1
with:
subject-path: "${{inputs.signeddir}}/**"

- name: Upload Signed artifacts
if: ${{inputs.sign != ''}}
id: upload
uses: actions/upload-artifact@v4
with:
name: ${{inputs.artifact}}-signed
path: ${{inputs.signeddir}}


29 changes: 29 additions & 0 deletions .github/actions/enable_conan/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Enable Conan
description: Setup conan with dependecies and cache it
inputs:
profile:
description: conan-profile
required: true
default: default

runs:
using: composite
steps:
- name: Set storage path
shell: bash
run: echo "CONAN_STORAGE=$(conan config home)/p" >> $GITHUB_ENV

- name: Cache conan packages
id: cache
uses: actions/cache@v4
with:
path: ${{env.CONAN_STORAGE}}
key: ${{inputs.profile}}

- if: ${{steps.cache.outputs.cache-hit != 'true'}}
name: Conan install
shell: bash
run: |
conan config install CI/conan
conan install . --build=missing --profile:build=${{inputs.profile}} --profile:host=${{inputs.profile}} --output-folder=.
conan cache clean "*" --source --build --temp --download
26 changes: 26 additions & 0 deletions .github/actions/enable_python/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Enable Python
description: Install python with requirenments and cache it

runs:
using: composite
steps:
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: 3.13

- name: Cache dependencies
id: cache
uses: actions/cache@v4
with:
path: ${{ env.pythonLocation }}
key: ${{ env.pythonLocation }}-${{ hashFiles('requirements.txt') }}
restore-keys:
${{ env.pythonLocation }}

- if: ${{steps.cache.outputs.cache-hit != 'true'}}
name: Install dependencies
shell: bash
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
13 changes: 13 additions & 0 deletions .github/actions/enable_python_macos/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: Setup Pyhthon MacOS
description: Install python deps for MacOS
runs:
using: composite
steps:
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: '3.13'
cache: pip

- run: pip install -r requirements.txt
shell: bash
38 changes: 38 additions & 0 deletions .github/actions/pack/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Pack artifacts
description: Pack project artifacts for deploy
inputs:
packdir:
description: directory for packaging
required: true
default: build
artifact:
description: artifacts name
required: true
sign:
description: test or release sign
type: string
required: true
default: test-signing

outputs:
artifactid:
description: artifactid for uploaded package
value: ${{steps.upload.outputs.artifact-id}}

runs:
using: composite
steps:
- name: Packaging
working-directory: ${{inputs.packdir}}
shell: bash
run: cpack

- name: Archive production artifacts
id: upload
uses: actions/upload-artifact@v4
with:
name: ${{inputs.artifact}}
path: |
${{inputs.packdir}}/*.zip
${{inputs.packdir}}/*.rpm
${{inputs.packdir}}/*.deb
58 changes: 58 additions & 0 deletions .github/actions/setup_ubuntu_env/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Ubuntu env
description: Install dev packages for compilation
runs:
using: composite
steps:
- name: Setup environment
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y libgl-dev \
libgl-dev \
libgl1-mesa-dev \
libx11-dev \
libx11-xcb-dev \
libfontenc-dev \
libice-dev \
libsm-dev \
libxau-dev \
libxaw7-dev \
libx11-xcb-dev \
libfontenc-dev \
libxcomposite-dev \
libxcursor-dev \
libxdamage-dev \
libxfixes-dev \
libxi-dev \
libxinerama-dev \
libxmu-dev \
libxmuu-dev \
libxpm-dev \
libxrandr-dev \
libxres-dev \
libxss-dev \
libxtst-dev \
libxv-dev \
libxxf86vm-dev \
libxcb-glx0-dev \
libxcb-render-util0-dev \
libxcb-xkb-dev \
libxcb-icccm4-dev \
libxcb-image0-dev \
libxcb-keysyms1-dev \
libxcb-randr0-dev \
libxcb-shape0-dev \
libxcb-sync-dev \
libxcb-xfixes0-dev \
libxcb-xinerama0-dev \
libxcb-dri3-dev \
libxcb-cursor-dev \
libxcb-dri2-0-dev \
libxcb-dri3-dev \
libxcb-present-dev \
libxcb-composite0-dev \
libxcb-ewmh-dev \
libxcb-res0-dev \
libxv-dev \
libxcb-util-dev \
libxcb-util0-dev
33 changes: 33 additions & 0 deletions .github/actions/sign/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Sign
description: Sign distributed package
inputs:
artifactid:
description: artifact upload id
required: true
output:
description: signed artifacts dir
required: true
default: .
policy:
description: sign policy
type: string
required: true
default: test-signing
token:
description: sign api token
required: true

runs:
using: composite
steps:
- uses: signpath/github-action-submit-signing-request@v1.1
with:
api-token: '${{ inputs.token }}'
organization-id: 458e74d2-1c0a-4e3a-b1e7-9bc24caf673e
project-slug: daggy
artifact-configuration-slug: win
signing-policy-slug: ${{inputs.policy}}
github-artifact-id: ${{inputs.artifactid}}
wait-for-completion: true
output-artifact-directory: ${{inputs.output}}

31 changes: 31 additions & 0 deletions .github/actions/tests/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Conan build
description: Build project using conan
inputs:
testdir:
description: directory for run ctest
required: true
default: build/Release
name:
description: tests name
require: true
default: Tests Result

runs:
using: "composite"
steps:
- name: Tests
working-directory: ${{inputs.testdir}}
shell: bash
run: ctest -C Release --output-on-failure --output-junit tests/local_tests.xml

- name: daggy version
working-directory: ${{inputs.testdir}}
shell: bash
run: bin/daggy --version

- uses: mikepenz/action-junit-report@v5
with:
report_paths: ${{inputs.testdir}}/tests/local_tests.xml
detailed_summary: true
include_passed: true
check_name: ${{inputs.name}}
Loading