From 8aa1a6187022286daf36670f0f7241317b9e60a4 Mon Sep 17 00:00:00 2001 From: Davide De Rosa Date: Mon, 25 Mar 2024 01:15:27 +0100 Subject: [PATCH] Reuse external action --- .github/workflows/release.yml | 86 ++++------------------------------- ci-generate.sh | 9 ++++ 2 files changed, 18 insertions(+), 77 deletions(-) create mode 100755 ci-generate.sh diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5fd525d..89ac146 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,91 +3,23 @@ name: Binary Release on: push: branches: - - 'master' + - "master" paths: - - '.version' + - ".version" jobs: publish_binary_release: name: Publish binary release runs-on: macos-14 + timeout-minutes: 60 steps: + - uses: actions/checkout@v4 - uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: "15.2" - - uses: actions/checkout@v2 - - name: Build OpenSSL - id: lib - timeout-minutes: 60 - run: | - source scripts/get-openssl-version.sh - - COMPOUND_VERSION=`cat .version` - OPENSSL_VERSION=${COMPOUND_VERSION%-*} - SCRIPT_VERSION=${COMPOUND_VERSION#*-} - TAG_NAME=$(get_openssl_version $OPENSSL_VERSION $SCRIPT_VERSION) - - echo "Compiling OpenSSL $OPENSSL_VERSION" - ./build-libssl.sh --cleanup --version="$OPENSSL_VERSION" - - echo "tag=$TAG_NAME" >> $GITHUB_OUTPUT - echo "openssl_version=$OPENSSL_VERSION" >> $GITHUB_OUTPUT - echo "script_version=$SCRIPT_VERSION" >> $GITHUB_OUTPUT - - name: Produce dynamic framework - id: framework - env: - FRAMEWORK_DIR: "frameworks" - FRAMEWORK: "openssl.xcframework" - run: | - ./create-openssl-framework.sh - ( cd $FRAMEWORK_DIR && zip -yr $FRAMEWORK.zip $FRAMEWORK ) - - echo "artifact=$FRAMEWORK_DIR/$FRAMEWORK.zip" >> $GITHUB_OUTPUT - - name: Import GPG key - uses: crazy-max/ghaction-import-gpg@v4 + - uses: passepartoutvpn/action-release-binary-package@master with: - gpg_private_key: ${{ secrets.GPG_KEY }} - passphrase: ${{ secrets.GPG_PASSPHRASE }} - git_user_signingkey: true - git_commit_gpgsign: true - git_tag_gpgsign: true - git_push_gpgsign: false - - name: Update Package.swift - id: package - env: - TAG_NAME: ${{ steps.lib.outputs.tag }} - OPENSSL_VERSION: ${{ steps.lib.outputs.openssl_version }} - SCRIPT_VERSION: ${{ steps.lib.outputs.script_version }} - PACKAGE_METADATA: "Package.swift" - PACKAGE_ARTIFACT: ${{ steps.framework.outputs.artifact }} - PACKAGE_CHECKSUM: ${{ steps.framework.outputs.artifact }}.checksum - run: | - CHECKSUM=`swift package compute-checksum "$PACKAGE_ARTIFACT"` - echo $CHECKSUM >$PACKAGE_CHECKSUM - - sed -E "s@/[0-9\.]+/(openssl.xcframework.zip)@/$TAG_NAME/\\1@" $PACKAGE_METADATA | - sed -E "s/checksum: \"[0-9a-f]+\"/checksum: \"$CHECKSUM\"/" >$PACKAGE_METADATA.tmp - mv $PACKAGE_METADATA.tmp $PACKAGE_METADATA - - RELEASE_NAME="OpenSSL $OPENSSL_VERSION" - if [ $SCRIPT_VERSION -gt 0 ]; then - RELEASE_NAME="$RELEASE_NAME ($SCRIPT_VERSION)" - fi - - git add $PACKAGE_METADATA - git commit -m "$RELEASE_NAME" - git tag "$TAG_NAME" -m "$RELEASE_NAME" - git push && git push --tags - - echo "release_name=$RELEASE_NAME" >> $GITHUB_OUTPUT - echo "release_notes=$RELEASE_NOTES" >> $GITHUB_OUTPUT - echo "checksum=$PACKAGE_CHECKSUM" >> $GITHUB_OUTPUT - - name: Publish release - uses: softprops/action-gh-release@v1 - with: - name: ${{ steps.package.outputs.release_name }} - tag_name: ${{ steps.lib.outputs.tag }} - generate_release_notes: true - files: | - ${{ steps.framework.outputs.artifact }} - ${{ steps.package.outputs.checksum }} + script: "ci-generate.sh" + framework: "openssl.xcframework" + gpg-key: ${{ secrets.GPG_KEY }} + gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }} diff --git a/ci-generate.sh b/ci-generate.sh new file mode 100755 index 0000000..4d9d59c --- /dev/null +++ b/ci-generate.sh @@ -0,0 +1,9 @@ +#!/bin/bash +OPENSSL_VERSION="$1" +FW_PATH="$2" + +echo "Compiling OpenSSL $OPENSSL_VERSION" +./build-libssl.sh --cleanup --version="$OPENSSL_VERSION" +./create-openssl-framework.sh + +mv frameworks/openssl.xcframework "$FW_PATH"