Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge from main Branch #6

Merged
merged 25 commits into from
Nov 24, 2024
Merged
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
95bae83
Add SECURITY.md to guide security vulnerability reporting (#11360)
Ahlam-Banu Oct 19, 2024
6e0baf9
Support passkeys with Bitwarden import (#11401)
varjolintu Oct 25, 2024
8acc542
Reset splitter sizes on database unlock
droidmonkey Jul 1, 2024
feafcec
Improve related splitter UX
droidmonkey Sep 23, 2024
34fe413
Fix resolving advanced values in entry preview
droidmonkey Sep 23, 2024
5d24495
Hide the menubar when menus lose focus (if toggled off)
droidmonkey Oct 12, 2024
2738a72
Fix assert hit when viewing entry history
droidmonkey Oct 19, 2024
181f480
Build for MacOS too
blessio Oct 17, 2024
b734037
Removed apt upgrade and corrected winget install
blessio Nov 2, 2024
d03ffc2
Fixed background color when window is out of focus
xboxones1 Nov 2, 2024
1e7175d
Merger manually a wait logic from air-hand
blessio Nov 2, 2024
3fd8286
pinned winget version to a newer but still working version
blessio Nov 3, 2024
d4e0fd3
Merge branch 'keepassxreboot:develop' into devbleo3
blessio Nov 3, 2024
63eab48
Set the devbleo3 scheduled overy friday 3:07 AM
blessio Nov 4, 2024
9e3763c
Merge branch 'devbleo3' of github.com:blessio/keepassxc-B into devbleo3
blessio Nov 4, 2024
970e5ee
move from macos-12 to macos-13
blessio Nov 4, 2024
6e81451
Add timeout to SSH Agent streams
droidmonkey Sep 23, 2024
ca9b88f
Replace legacy code on macOS builds (#11428)
FischLu Nov 10, 2024
bff0b93
Device Password fallback when Touch-ID devices are unavailable (#11410)
findus Nov 10, 2024
2fc24be
Browser: Fix cancel with database unlock dialog (#11435)
varjolintu Nov 10, 2024
4acb377
Hide status bar on WelcomeScreen
xboxones1 Nov 10, 2024
b9c5869
Implement T-CONV and T-REPLACE-RX entry placeholders
droidmonkey Nov 9, 2024
9b8163c
Use better xref syntax for documentation
droidmonkey Nov 10, 2024
bf856d2
Detect outdated VC Redist with MSI Installer
droidmonkey Nov 8, 2024
b97969e
Merge branch 'keepassxreboot:develop' into devbleo3
blessio Nov 23, 2024
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
Prev Previous commit
Next Next commit
Build for MacOS too
  • Loading branch information
blessio committed Nov 2, 2024
commit 181f480c0122c0c8369193add70c0ba071ba3f98
164 changes: 125 additions & 39 deletions .github/workflows/bld-test-upload.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
# File: .github/workflows/bld-test-upload.yml
# Copyright: 2024, Owner of blessio.com
# License: MIT
############################################
# Used the starter here:
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml
# BUILDS KeepasXC
name: BLD AND TEST MatrixBased-WIN64-UBUNTU-NotyetMacOS
name: BLD AND TEST MatrixBased-WIN64-UBUNTU-MacOS

on:
push:
branches: [ "develop", "devbleo2", bleo8, bleo5_01, bleo5_01.1 ]
branches: [ "develop", "devbleo3", bleo8, bleo5_01, bleo5_01.1 ]
pull_request:
branches: [ "devbleo" , bleo5_01 ]

Expand All @@ -20,21 +24,27 @@ jobs:
matrix:
build_type: [RelWithDebInfo,Debug] #Release with no debug info is useless I believe
config:
- os: windows-2022 # , ubuntu-latest] #[windows-latest] # [ubuntu-latest, windows-latest]
- os: windows-latest
vcpkg_triplet: x64-windows
github-binarycache: true
- os: ubuntu-22.04 # , ubuntu-latest] #[windows-latest] # [ubuntu-latest, windows-latest]
- os: ubuntu-latest
vcpkg_triplet: x64-linux
github-binarycache: true
- os: macos-latest
vcpkg_triplet: arm64-osx-dynamic-release
github-binarycache: true
- os: macos-12
vcpkg_triplet: x64-osx-dynamic-release
github-binarycache: true

steps:
###################################


- name: Generate UUID
- name: 100. Generate UUID
id: generate-uuid
uses: filipstefansson/uuid-action@v1

- name: Set reusable strings and Environment for actions
- name: 110. Set reusable strings and Environment for actions
# Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
id: strings
shell: bash
Expand All @@ -47,24 +57,31 @@ jobs:
echo "TRIPLET IS ${{ matrix.config.vcpkg_triplet }}"
echo "Running on ${{ matrix.config.os }}"

- name: Windows Only // Install Winget so that e can use it to install SDK as needed
- name: 112. MacOS version and environment
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: |
xcodebuild -version
sw_vers

- name: 120. Windows Only // Install Winget so that e can use it to install SDK as needed
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
uses: Cyberboss/install-winget@v1

- name: Windows Only // Set Up windows SDK and Ruby and the needed gem of asciidoctor
- name: 130. Windows Only // Set Up windows SDK and Ruby and the needed gem of asciidoctor
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
run: |
winget install --source winget --exact --id Microsoft.WindowsSDK.${{ steps.strings.outputs.build-winsdk }} --silent
winget install RubyInstallerTeam.Ruby.3.2 --accept-package-agreements --accept-source-agreements
gem install asciidoctor

- name: Windows Only // Set environment variable VCPKG_ROOT
- name: 140. Windows Only // Set environment variable VCPKG_ROOT
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
run: |
$env:VCPKG_ROOT = "$env:VCPKG_INSTALLATION_ROOT"
echo "VCPKG_ROOT=$env:VCPKG_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append

- name: LINUX Only // Prepare Linux packages that are needed
- name: 150. LINUX Only // Prepare Linux packages that are needed
if: ${{ startsWith( matrix.config.os , 'ubuntu' ) }}
run: >
sudo apt update -y &&
Expand All @@ -75,49 +92,117 @@ jobs:
libkeyutils-dev zlib1g-dev libreadline-dev libpcsclite-dev libusb-1.0-0-dev
libxi-dev libxtst-dev libqt5x11extras5-dev

- name: get from Git
#- name: 170. MACOS Only // commandline extension
# if: ${{ startsWith( matrix.config.os , 'macos' ) }}
# continue-on-error: true
# run: xcode-select --install
- name: 171. MACOS Only // Homebrew
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- name: 172. MACOS Only cmake and asciidoctor
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: brew install asciidoctor
- name: 173.0 MACOS (re)install pyhon
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: |
brew uninstall --ignore-dependencies python
- name: 173.1 MACOS (re)install pyhon
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: |
brew uninstall --ignore-dependencies python3

- name: 173.2 MACOS (re)install pyhon
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: |
brew install python@3.12

- name: 173.3 MACOS (re)install pyhon
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: |
pip install setuptools

- name: 173.4 MACOS (re)install pyhon
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: |
python3 --version

- name: 173.5 MACOS (re)install pyhon
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: |
python --version

- name: 174. MACOS Only PKGs
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
continue-on-error: true
run: brew install pkg-config vcpkg

- name: 180. get the Source from Git from Git
uses: actions/checkout@v4

- name: Windows Only // VCPKG build
id: vcpkg
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
uses: blessio/vcpkg-actionB@vbleo7.0
- name: 300. Windows AND MacOS // VCPKG install build
id: vcpkg1
if: ${{ startsWith( matrix.config.os , 'macos' ) || startsWith( matrix.config.os , 'windows' ) }}
uses: blessio/vcpkg-actionB@bleo_v7.1.0 # vbleo7.0
with:
manifest-dir: ${{ github.workspace }} # Set to directory containing vcpkg.json
triplet: ${{ matrix.config.vcpkg_triplet }} # x64-windows-release
manifest-dir: ${{ github.workspace }} # Set to directory containing vcpkg.json
# No verbose available extra-args: ' --x-make '
triplet: ${{matrix.config.vcpkg_triplet }} # x64-windows-release
token: ${{ github.token }}
github-binarycache: true
vcpkg-subdir: ${{ steps.strings.outputs.build-root-vcpkg-dir}}
cache-key: "kpxco5-${{ matrix.config.vcpkg_triplet }}"
vcpkg-subdir: ${{steps.strings.outputs.build-root-vcpkg-dir}}
cache-key: "kpxco7-1-${{ matrix.config.vcpkg_triplet }}"
fetch-depth: "0"

- name: Print intermediate environment results
- name: 500. Print intermediate environment results
shell: bash
run: |
echo " *** RECOMENDED CMAKE CONFIG is ${{ steps.vcpkg.outputs.vcpkg-cmake-config }}"
echo " *** HASH IS ${{ steps.vcpkg.outputs.vcpkg-cache-hash }}"
echo " ***** RECOMENDED CMAKE CONFIG is ${{ steps.vcpkg.outputs.vcpkg-cmake-config }}"
echo " ***** HASH IS ${{ steps.vcpkg.outputs.vcpkg-cache-hash }}"

- name: Windows ONLY // Configure CMake
- name: 550. Windows ONLY // Configure CMake
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
run: >
mkdir ${{ steps.strings.outputs.build-sub-dir }} &&
cd ${{ steps.strings.outputs.build-sub-dir }} &&
cmake -DWITH_XC_ALL=ON
-DCMAKE_SYSTEM_VERSION=${{ steps.strings.outputs.build-winsdk }}
-DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}\${{ steps.strings.outputs.build-root-vcpkg-dir}}\scripts\buildsystems\vcpkg.cmake
-DVCPKG_TARGET_TRIPLET=${{ matrix.config.vcpkg_triplet}}
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-DWITH_GUI_TESTS=ON
..

- name: 555. MacOS ONLY // Configure CMake
if: ${{ startsWith( matrix.config.os , 'macos' ) }}
run: >
mkdir ${{ steps.strings.outputs.build-sub-dir }} &&
cd ${{ steps.strings.outputs.build-sub-dir }} &&
cmake -DWITH_XC_ALL=ON
-DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/${{ steps.strings.outputs.build-root-vcpkg-dir}}/scripts/buildsystems/vcpkg.cmake
-DVCPKG_TARGET_TRIPLET=${{ matrix.config.vcpkg_triplet }}
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-DWITH_GUI_TESTS=ON
..


- name: LINUX ONLY // Configure CMake
- name: 560. LINUX ONLY // Configure CMake
if: ${{ startsWith( matrix.config.os , 'ubuntu' ) }}
run: >
mkdir ${{ steps.strings.outputs.build-sub-dir }} &&
cd ${{ steps.strings.outputs.build-sub-dir }} &&
cmake -DWITH_XC_ALL=ON
cmake -DWITH_XC_ALL=ON
-DWITH_GUI_TESTS=ON
..

- name: Windows Check DiskSpace
- name: 600. Windows Check DiskSpace
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
run: >
Get-PSDrive -PSProvider FileSystem | Select-Object Name, @{Name="Used (GB)";Expression={[math]::round($_.Used/1GB,2)}},
Expand All @@ -127,32 +212,32 @@ jobs:
# run: >
# Get-ChildItem Env: | Sort-Object Name

- name: Build
- name: 650. Build
# Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
working-directory: ${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}
run: |
cmake --build . --config ${{ matrix.build_type }}

# Prep for the tests
- name: Windows Only // ADD paths to some specual DLLs needed for the testing
- name: 700. Windows Only // ADD paths to some specual DLLs needed for the testing
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
run: |
$env:PATH="$env:PATH;${{ github.workspace }}\${{ steps.strings.outputs.build-sub-dir }}\src\autotype\test\${{ matrix.build_type }}"
echo "PATH=$env:PATH" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Linux // ADD paths to some specual DLLs needed for the testing
- name: 710. Linux // ADD paths to some specual DLLs needed for the testing
if: ${{ startsWith( matrix.config.os , 'ubuntu' ) }}
run: |
echo "export PATH=$PATH:${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}/src/autotype/test/${{ matrix.build_type }}" >> ~/.bashrc
source ~/.bashrc

- name: PRINT Environment Variable
- name: 730. PRINT Environment Variable
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
run: |
Get-ChildItem Env: | Sort-Object Name
cd "${{ github.workspace }}\${{ steps.strings.outputs.build-sub-dir }}\src\autotype\test\${{ matrix.build_type }}"
ls

- name: Test and Install
- name: 750. Test
working-directory: ${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}
# Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
Expand All @@ -162,34 +247,35 @@ jobs:
ctest --build-config ${{ matrix.build_type }}
ctest --build-config ${{ matrix.build_type }} --rerun-failed --output-on-failure

- name: Install
- name: 760. Install RUN on any host with bash
working-directory: ${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}
# Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
shell: bash
continue-on-error: true
run: >
cmake --install ${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}
--config ${{ matrix.build_type }} --prefix ${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}/_install -v
--config ${{ matrix.build_type }}
--prefix ${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}/_install -v

- name: WINDOWS ONLY // Upload build Executables
- name: 770. WINDOWS ONLY // Upload build Executables
if: ${{ startsWith( matrix.config.os , 'windows' ) }}
uses: actions/upload-artifact@v3
with:
name: build-win-executables- ${{ steps.strings.outputs.bld-var-str }}
name: build-win-executables-${{ steps.strings.outputs.bld-var-str }}
path: |
${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}/src/${{ matrix.build_type }}

- name: NON-WINDOWS // Upload build Executables
- name: 780. NON-WINDOWS // Upload build Executables
if: ${{ ! startsWith( matrix.config.os , 'windows' ) }}
uses: actions/upload-artifact@v3
with:
name: build-non-win-executables- ${{ steps.strings.outputs.bld-var-str }}
name: build-non-win-executables-${{ steps.strings.outputs.bld-var-str }}
path: |
${{ github.workspace }}/${{ steps.strings.outputs.build-sub-dir }}/_install


- name: Upload build Test Result Logs
- name: 790. Upload build Test Result Logs
uses: actions/upload-artifact@v3
with:
name: Test-Logs ${{ steps.strings.outputs.bld-var-str }}
Expand Down
Loading