Skip to content

Commit

Permalink
Githubactions: Update workflows
Browse files Browse the repository at this point in the history
  • Loading branch information
aveenismail committed Oct 30, 2023
1 parent c07350f commit 1b489bc
Show file tree
Hide file tree
Showing 3 changed files with 115 additions and 30 deletions.
24 changes: 20 additions & 4 deletions .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ jobs:
fail-fast: false
matrix:
include:
- environment: "ubuntu:23.10"
cc: "gcc"
upload_for_test: "false"
- environment: "ubuntu:23.10"
cc: "clang"
upload_for_test: "false"
- environment: "ubuntu:23.04"
cc: "gcc"
upload_for_test: "false"
Expand Down Expand Up @@ -288,7 +294,13 @@ jobs:

build_macos:
name: build on macos
runs-on: macos-latest
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
- os: macos-latest-xlarge

steps:

Expand All @@ -305,7 +317,12 @@ jobs:
env:
VERBOSE: 1
run: |
export PKG_CONFIG_PATH=/usr/local/opt/[email protected]/lib/pkgconfig:$PKG_CONFIG_PATH
ls /usr/local/opt
ls /usr/local/opt/openssl
ls /usr/local/opt/openssl/lib
export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
Expand All @@ -316,7 +333,7 @@ jobs:
env:
VERBOSE: 1
run: |
export PKG_CONFIG_PATH=/usr/local/opt/openssl@1.1/lib/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build-static
cd build-static
cmake -DENABLE_STATIC=ON -DCMAKE_BUILD_TYPE=Release ..
Expand All @@ -332,7 +349,6 @@ jobs:
fail-fast: false
matrix:
include:

- environment: "ubuntu:22.04"
cc: "clang"
- environment: "centos:7"
Expand Down
93 changes: 78 additions & 15 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,64 @@ jobs:
name: yubihsm-shell-src
path: artifact

Windowsx-build:
name: Build Windows release
needs: source
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
arch: x68
- os: windows-latest
arch: x64
env:
VERSION: 2.4.1
steps:
- name: Download source from source job
uses: actions/download-artifact@v3
with:
name: yubihsm-shell-src

- name: Extract source
run: |
Set-PSDebug -Trace 1
tar xf yubihsm-shell-$env:VERSION.tar.gz
- name: Build and make MSI installer
env:
ARCH: ${{ matrix.arch }}
run: |
Set-PSDebug -Trace 1
$YHSHELL_SRC_DIR="$env:GITHUB_WORKSPACE\yubihsm-shell-$env:VERSION"
$MERGEDPATH = Get-ChildItem "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Redist\MSVC\14.*\MergeModules\Microsoft_VC141_CRT_x86.msm"
cd $YHSHELL_SRC_DIR/resources/release/win
if [ "$env:ARCH" = "x68" ]; then
./make_release_binaries.ps1 Win32 C:/vcpkg
else
./make_release_binaries.ps1 x64 C:/vcpkg
fi
cd $YHSHELL_SRC_DIR/resources/release/win
./repack_installer.ps1 $env:ARCH $env:WIX\bin "$MERGEDPATH"
mkdir $env:GITHUB_WORKSPACE/artifact
cp -r $YHSHELL_SRC_DIR/resources/release/win/yubihsm-shell-$env:ARCH $env:GITHUB_WORKSPACE/artifact/
cp -r $YHSHELL_SRC_DIR/resources/release/win/yubihsm-shell-$env:ARCH.msi $env:GITHUB_WORKSPACE/artifact/
- name: Install yubihsm-shell
run: |
Set-PSDebug -Trace 1
cd "$env:GITHUB_WORKSPACE\yubihsm-shell-$env:VERSION\resources\release\win"
msiexec /i yubihsm-shell-${{ matrix.arch }}.msi /quiet /log $env:GITHUB_WORKSPACE/artifact/log_${{ matrix.arch }}.txt
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: yubihsm-shell-${{ matrix.arch }}
path: artifact

Windowsx86:
name: Build Windows x86 release
needs: source
Expand Down Expand Up @@ -120,10 +178,18 @@ jobs:
name: yubihsm-shell-win64
path: artifact

macos_amd64:
name: Build MacOS amd64 release
macos-build:
name: Build MacOS release
needs: source
runs-on: macos-latest
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
arch: amd
- os: macos-latest-xlarge
arch: arm
env:
VERSION: 2.4.1
SO_VERSION: 2
Expand All @@ -139,38 +205,35 @@ jobs:
tar xf yubihsm-shell-$VERSION.tar.gz
- name: Build and make MSI installer
env:
ARCH: ${{ matrix.arch }}
run: |
set -e -o pipefail
set -x
brew install [email protected]
ls /usr/local/opt
ls /usr/local/opt/[email protected]
ls /usr/local/opt/[email protected]/lib
YHSHELL_SRC_DIR="$GITHUB_WORKSPACE/yubihsm-shell-$VERSION"
cd $YHSHELL_SRC_DIR
./resources/release/macos/make_release_binaries.sh amd $VERSION $SO_VERSION
./resources/release/macos/make_release_binaries.sh $ARCH $VERSION $SO_VERSION
cd $YHSHELL_SRC_DIR/resources/release/macos/
./make_installer.sh amd64 $YHSHELL_SRC_DIR/resources/release/macos/yubihsm-shell-darwin-amd-$VERSION
./make_installer.sh amd64 $YHSHELL_SRC_DIR/resources/release/macos/yubihsm-shell-darwin-$ARCH-$VERSION
mkdir $GITHUB_WORKSPACE/artifact
cp -r $YHSHELL_SRC_DIR/resources/release/macos/yubihsm-shell-darwin-amd-$VERSION $GITHUB_WORKSPACE/artifact/
cp -r $YHSHELL_SRC_DIR/resources/release/macos/yubihsm2-sdk-darwin-amd64.pkg $GITHUB_WORKSPACE/artifact/
cp -r $YHSHELL_SRC_DIR/resources/release/macos/yubihsm-shell-darwin-$ARCH-$VERSION $GITHUB_WORKSPACE/artifact/
cp -r $YHSHELL_SRC_DIR/resources/release/macos/yubihsm2-sdk-darwin-$ARCH64.pkg $GITHUB_WORKSPACE/artifact/
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: yubihsm-shell-darwin-amd64
name: yubihsm-shell-darwin-${{ matrix.arch }}64
path: artifact

debian_based:
strategy:
fail-fast: false
matrix:
environment: [
"ubuntu:23.10",
"ubuntu:23.04",
"ubuntu:22.04",
"ubuntu:20.04",
Expand Down
28 changes: 17 additions & 11 deletions resources/release/macos/make_release_binaries.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,15 @@ else
exit
fi

brew install cmake pkg-config gengetopt help2man openssl@1.1
brew install cmake pkg-config gengetopt help2man openssl

export PKG_CONFIG_PATH=$BREW_LIB/[email protected]/lib/pkgconfig
ls $BREW_LIB
ls $BREW_LIB/openssl
ls $BREW_LIB/openssl/lib



export PKG_CONFIG_PATH=$BREW_LIB/openssl/lib/pkgconfig

SOURCE_DIR=$PWD
MAC_DIR=$SOURCE_DIR/resources/release/macos
Expand All @@ -32,25 +38,25 @@ cmake -DRELEASE_BUILD=1 -DWITHOUT_YKYH=1 -DWITHOUT_MANPAGES=1 -DCMAKE_INSTALL_PR
make install
cd $OUTPUT/lib
ln -s "libcrypto.1.1.dylib" "libcrypto.dylib"
cp "$BREW_LIB/openssl@1.1/lib/libcrypto.1.1.dylib" "$OUTPUT/lib"
cp "$BREW_LIB/openssl/lib/libcrypto.1.1.dylib" "$OUTPUT/lib"
chmod +w "$OUTPUT/lib/libcrypto.1.1.dylib"
cp -r $BREW_CELLAR/openssl@1.1/1.1.1*/include/openssl "$OUTPUT/include"
cp -r $BREW_CELLAR/openssl/*/include/openssl "$OUTPUT/include"

install_name_tool -id "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/lib/libcrypto.1.1.dylib"

install_name_tool -change "$BREW_LIB/openssl@1.1/lib/libcrypto.1.1.dylib" "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/lib/libyubihsm.dylib"
install_name_tool -change "$BREW_LIB/openssl@1.1/lib/libcrypto.1.1.dylib" "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/lib/libyubihsm.$VERSION.dylib"
install_name_tool -change "$BREW_LIB/openssl@1.1/lib/libcrypto.1.1.dylib" "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/lib/libyubihsm.$SO_VERSION.dylib"
install_name_tool -change "$BREW_LIB/openssl/lib/libcrypto.1.1.dylib" "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/lib/libyubihsm.dylib"
install_name_tool -change "$BREW_LIB/openssl/lib/libcrypto.1.1.dylib" "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/lib/libyubihsm.$VERSION.dylib"
install_name_tool -change "$BREW_LIB/openssl/lib/libcrypto.1.1.dylib" "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/lib/libyubihsm.$SO_VERSION.dylib"

install_name_tool -change "$BREW_LIB/libusb/lib/libusb-1.0.0.dylib" "@loader_path/../lib/libusb-1.0.0.dylib" "$OUTPUT/lib/libyubihsm_usb.dylib"
install_name_tool -change "$BREW_LIB/libusb/lib/libusb-1.0.0.dylib" "@loader_path/../lib/libusb-1.0.0.dylib" "$OUTPUT/lib/libyubihsm_usb.$VERSION.dylib"
install_name_tool -change "$BREW_LIB/libusb/lib/libusb-1.0.0.dylib" "@loader_path/../lib/libusb-1.0.0.dylib" "$OUTPUT/lib/libyubihsm_usb.$SO_VERSION.dylib"

install_name_tool -change "$BREW_LIB/openssl@1.1/lib/libcrypto.1.1.dylib" "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/lib/pkcs11/yubihsm_pkcs11.dylib"
install_name_tool -change "$BREW_LIB/openssl/lib/libcrypto.1.1.dylib" "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/lib/pkcs11/yubihsm_pkcs11.dylib"

install_name_tool -change "$BREW_LIB/openssl@1.1/lib/libcrypto.1.1.dylib" "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/bin/yubihsm-shell"
install_name_tool -change "$BREW_LIB/openssl@1.1/lib/libcrypto.1.1.dylib" "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/bin/yubihsm-wrap"
install_name_tool -change "$BREW_LIB/openssl@1.1/lib/libcrypto.1.1.dylib" "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/bin/yubihsm-auth"
install_name_tool -change "$BREW_LIB/openssl/lib/libcrypto.1.1.dylib" "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/bin/yubihsm-shell"
install_name_tool -change "$BREW_LIB/openssl/lib/libcrypto.1.1.dylib" "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/bin/yubihsm-wrap"
install_name_tool -change "$BREW_LIB/openssl/lib/libcrypto.1.1.dylib" "@loader_path/../lib/libcrypto.1.1.dylib" "$OUTPUT/bin/yubihsm-auth"

for file in `find $OUTPUT/lib $OUTPUT/bin -type f`; do
if otool -L $file | grep -q '$OUTPUT'; then
Expand Down

0 comments on commit 1b489bc

Please sign in to comment.