From f12c4a62fbf9ecb9f898cb39b3294125bcceed92 Mon Sep 17 00:00:00 2001 From: Avery Black Date: Tue, 8 Oct 2024 21:54:07 -0700 Subject: [PATCH] Upload releases with VSMB on Tag (#187) --- .github/workflows/main.yml | 76 +++++++++++++++++++++++------ VoodooRMI.xcodeproj/project.pbxproj | 2 +- 2 files changed, 62 insertions(+), 16 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8522a92..e8b8239 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,29 +1,75 @@ name: CI -on: [push, pull_request] +on: + push: + pull_request: + workflow_dispatch: + release: + types: [published] + +env: + PROJECT_TYPE: KEXT jobs: build: - + name: Build runs-on: macos-latest + env: + JOB_TYPE: BUILD steps: - - uses: actions/checkout@v4 - - name: Checkout submodules - run: git submodule update --init --recursive - - name: Clone Acidanthera/MacKernelSDK - run: git clone --depth 1 https://github.com/acidanthera/MacKernelSDK.git - - name: get shortsha + - name: Checkout VRMI + uses: actions/checkout@v4 + with: + submodules: 'recursive' + - name: Checkout MacKernelSDK + uses: actions/checkout@v4 + with: + repository: acidanthera/MacKernelSDK + path: MacKernelSDK + - name: CI Bootstrap + run: | + src=$(/usr/bin/curl -Lfs https://raw.githubusercontent.com/acidanthera/ocbuild/master/ci-bootstrap.sh) && eval "$src" || exit 1 + + - name: Link MacKernelSDK to VSMB + run: ln -s ${{ github.workspace }}/MacKernelSDK ${{ github.workspace }}/Dependencies/VoodooSMBus/MacKernelSDK + - name: Get Commit SHA id: vars run: | echo "sha_short=$(git rev-parse --short=8 ${{ github.sha }})" >> $GITHUB_OUTPUT - - name: build - env: - VOODOORMI_SHA: VoodooRMI-${{ steps.vars.outputs.sha_short }} + + - name: Build Debug VSMB + run: xcodebuild -configuration Debug + working-directory: ${{ github.workspace }}/Dependencies/VoodooSMBus + - name: Build Release VSMB + run: xcodebuild -configuration Release + working-directory: ${{ github.workspace }}/Dependencies/VoodooSMBus + + - name: Build Debug VRMI + run: xcodebuild -scheme VoodooRMI -derivedDataPath build -configuration Debug + - name: Build Release VRMI + run: xcodebuild -scheme VoodooRMI -derivedDataPath build -configuration Release + + - name: Zip Release + working-directory: ${{ github.workspace }}/build/Build/Products/Release/ + run: | + cp -r ${{ github.workspace }}/Dependencies/VoodooSMBus/build/Release/*.dSYM dSYM/ | + cp -r ${{ github.workspace }}/Dependencies/VoodooSMBus/build/Release/*.kext ./ | + zip -ur *.zip dSYM/ VoodooSMBus.kext + - name: Zip Debug + working-directory: ${{ github.workspace }}/build/Build/Products/Debug/ run: | - mkdir -p build/${VOODOORMI_SHA}/{Debug,Release} - xcodebuild -configuration Debug -scheme VoodooRMI -derivedDataPath build clean build - xcodebuild -configuration Release -scheme VoodooRMI -derivedDataPath build build + cp -r ${{ github.workspace }}/Dependencies/VoodooSMBus/build/Debug/*.kext ./ | + zip -ur *.zip VoodooSMBus.kext + + - uses: svenstaro/upload-release-action@v2 + if: github.event_name == 'release' + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: build/Build/Products/*/*.zip + tag: ${{ github.ref }} + file_glob: true + - uses: actions/upload-artifact@v4 with: - name: VoodooRMI + name: VoodooRMI-${{ steps.vars.outputs.sha_short }} path: build/Build/Products/*/*.zip diff --git a/VoodooRMI.xcodeproj/project.pbxproj b/VoodooRMI.xcodeproj/project.pbxproj index 79e9f68..33ae1a3 100644 --- a/VoodooRMI.xcodeproj/project.pbxproj +++ b/VoodooRMI.xcodeproj/project.pbxproj @@ -477,7 +477,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# From Acidanthera's VoodooPS2\ncd \"${TARGET_BUILD_DIR}\"\ncp -r \"${PROJECT_DIR}/VoodooInput/${CONFIGURATION}/VoodooInput.kext\" \"${BUILT_PRODUCTS_DIR}/VoodooRMI.kext/Contents/PlugIns/\"\ndist=(\"VoodooRMI.kext\")\nif [ -d \"$DWARF_DSYM_FILE_NAME\" ]; then\n rm -rf dSYM\n mkdir dSYM\n mv \"$DWARF_DSYM_FILE_NAME\" dSYM/\n find ${FULL_PRODUCT_NAME} -name *.dSYM -exec mv {} dSYM/ \\;\n dist+=(dSYM);\nfi\n\narchive=\"VoodooRMI-${CURRENT_PROJECT_VERSION}-$(echo $CONFIGURATION | tr /a-z/ /A-Z/).zip\"\nrm -rf *.zip\nzip -qry -FS \"${archive}\" \"${dist[@]}\"\n\n"; + shellScript = "# From Acidanthera's VoodooPS2\ncd \"${TARGET_BUILD_DIR}\"\nrm -rf \"${FULL_PRODUCT_NAME}/Contents/PlugIns/VoodooInput.kext\"\nmkdir -p \"${FULL_PRODUCT_NAME}/Contents/PlugIns\"\ncp -r \"${PROJECT_DIR}/VoodooInput/${CONFIGURATION}\"/* \"${FULL_PRODUCT_NAME}/Contents/PlugIns/\"\ndist=(\"VoodooRMI.kext\")\nif [ -d \"$DWARF_DSYM_FILE_NAME\" ]; then\n rm -rf dSYM\n mkdir dSYM\n mv \"$DWARF_DSYM_FILE_NAME\" dSYM/\n find ${FULL_PRODUCT_NAME} -name *.dSYM -exec mv {} dSYM/ \\;\n dist+=(dSYM);\nfi\n\narchive=\"VoodooRMI-${CURRENT_PROJECT_VERSION}-$(echo $CONFIGURATION | tr /a-z/ /A-Z/).zip\"\nrm -rf *.zip\nzip -qry -FS \"${archive}\" \"${dist[@]}\"\n\n"; }; A4560EE8247F2CC00009CBE0 /* Bootstrap VoodooInput */ = { isa = PBXShellScriptBuildPhase;