Skip to content

Add MacOS euphoria action #100

Add MacOS euphoria action

Add MacOS euphoria action #100

name: Build OpenVPNAdapter for Apple
on: [push]
jobs:
build-macos:
name: 'OpenVPNAdapter for macOS'
runs-on: macos-latest
if: |
contains(github.event.head_commit.message, '[all]') ||
contains(github.event.head_commit.message, '[macos]') ||
contains(github.event.head_commit.message, '[openvpnadapter-macos]') ||
contains(github.event.head_commit.message, '[openvpnadapter]')
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
repository: amnezia-vpn/OpenVPNAdapter
path: OpenVPNAdapter
ref: master-amnezia
submodules: recursive
- name: Build OpenVPNAdapter for macOS
run: |
echo "Building OpenVPNAdapter for macOS…"
xcrun xcodebuild \
-project OpenVPNAdapter/OpenVPNAdapter.xcodeproj \
-scheme OpenVPNAdapter \
-destination 'generic/platform=macOS' \
-configuration Release \
-sdk macosx \
PROJECT_TEMP_DIR=$(pwd)/OpenVPNAdapter/build/OpenVPNAdapter.build \
CONFIGURATION_BUILD_DIR=$(pwd)/OpenVPNAdapter/build/Release-macos \
BUILT_PRODUCTS_DIR=$(pwd)/OpenVPNAdapter/build/Release-macos \
SKIP_INSTALL=NO \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
CODE_SIGNING_ALLOWED=NO \
CODE_SIGNING_REQUIRED=NO
- name: Generate Checksums for OpenVPNAdapter.framework
run: |
if [ -d "$(pwd)/OpenVPNAdapter/build/Release-macos/OpenVPNAdapter.framework" ]; then
echo "Generating checksums for OpenVPNAdapter.framework…"
find $(pwd)/OpenVPNAdapter/build/Release-macos \
-type f \
-exec sh -c 'openssl dgst -sha256 -r "$1" > "$1.sha256"' _ {} \;
else
echo "Directory $(pwd)/OpenVPNAdapter/build/Release-macos/OpenVPNAdapter.framework does not exist."
exit 1
fi
- name: Create tarball preserving symlinks
run: tar -cvf OpenVPNAdapter-macos.tar -C OpenVPNAdapter/build/Release-macos .
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: OpenVPNAdapter-macos
path: OpenVPNAdapter-macos.tar
build-ios:
name: 'OpenVPNAdapter for iOS'
runs-on: macos-latest
if: |
contains(github.event.head_commit.message, '[all]') ||
contains(github.event.head_commit.message, '[ios]') ||
contains(github.event.head_commit.message, '[openvpnadapter-ios]') ||
contains(github.event.head_commit.message, '[openvpnadapter]')
steps:
- name: Get OpenVPNAdapter
uses: actions/checkout@v4
with:
repository: amnezia-vpn/OpenVPNAdapter
ref: master-amnezia
path: OpenVPNAdapter
submodules: recursive
- name: Build OpenVPNAdapter for iOS
run: |
echo "Building OpenVPNAdapter for iOS…"
xcrun xcodebuild \
-project OpenVPNAdapter/OpenVPNAdapter.xcodeproj \
-scheme OpenVPNAdapter \
-destination 'generic/platform=iOS' \
-configuration Release \
-sdk iphoneos \
PROJECT_TEMP_DIR=$(pwd)/OpenVPNAdapter/build/OpenVPNAdapter.build \
CONFIGURATION_BUILD_DIR=$(pwd)/OpenVPNAdapter/build/Release-iphoneos \
BUILT_PRODUCTS_DIR=$(pwd)/OpenVPNAdapter/build/Release-iphoneos \
SKIP_INSTALL=NO \
BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
CODE_SIGNING_ALLOWED=NO \
CODE_SIGNING_REQUIRED=NO
- name: Generate Checksums for OpenVPNAdapter.framework
run: |
if [ -d "$(pwd)/OpenVPNAdapter/build/Release-iphoneos/OpenVPNAdapter.framework" ]; then
echo "Generating checksums for OpenVPNAdapter.framework…"
find "$(pwd)/OpenVPNAdapter/build/Release-iphoneos" -type f -exec sh -c \
'if [ ! -L "$1" ]; then openssl dgst -sha256 -r "$1" > "$1.sha256"; fi' _ {} \;
else
echo "Directory $(pwd)/OpenVPNAdapter/build/Release-iphoneos/OpenVPNAdapter.framework does not exist."
exit 1
fi
- name: Create tarball preserving symlinks
run: tar -cvf OpenVPNAdapter-ios.tar -C OpenVPNAdapter/build/Release-iphoneos .
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: OpenVPNAdapter-ios
path: OpenVPNAdapter-ios.tar
github-release:
name: GitHub Release
needs: [build-ios, build-macos]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Setup | Checkout
uses: actions/checkout@v4
- name: Download iOS Artifact
uses: actions/download-artifact@v4
with:
name: OpenVPNAdapter-ios
path: openvpnadapter-ios/
- name: Extract iOS Artifact
run: tar -xvf openvpnadapter-ios/OpenVPNAdapter-ios.tar -C openvpnadapter-ios/
- name: Download macOS Artifact
uses: actions/download-artifact@v4
with:
name: OpenVPNAdapter-macos
path: openvpnadapter-macos/
- name: Extract macOS Artifact
run: tar -xvf openvpnadapter-macos/OpenVPNAdapter-macos.tar -C openvpnadapter-macos/
- name: Create Combined Folder
run: |
mkdir -p openvpnadapter/ios
mkdir -p openvpnadapter/macos
rsync -a openvpnadapter-ios/ openvpnadapter/ios/
rsync -a openvpnadapter-macos/ openvpnadapter/macos/
- name: Archive using tar
run: |
tar -czf openvpnadapter.tar.gz openvpnadapter/
shell: bash
- name: List Generated Files
run: ls -l
- name: Upload Binaries to GitHub Release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref }}
overwrite: true
file: openvpnadapter.tar.gz
file_glob: false