Skip to content

Commit

Permalink
feat: build workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
suphon-t committed Jan 10, 2024
1 parent adbbff9 commit 706c4bc
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 12 deletions.
74 changes: 74 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: build
on:
push:
branches:
- main

jobs:
build:
runs-on: macos-13
steps:
- uses: actions/checkout@v3
name: Checkout

- name: Install go
run: |
brew install go
GO_BINARY=$(which go)
echo "GO_BINARY=$GO_BINARY" >> .xcode.env.local
- name: Select Xcode
run: sudo xcode-select -s "/Applications/Xcode_15.1.app"

- name: Resolve dependencies
run: xcodebuild -resolvePackageDependencies

- name: Config environment
run: |
SCHEME=$(xcodebuild -list -json | jq -r '.project.schemes[0]')
BUILD_SETTINGS=$(xcodebuild -scheme "$SCHEME" -showBuildSettings -json | jq -r '.[0].buildSettings')
FULL_PRODUCT_NAME=$(echo $BUILD_SETTINGS | jq -r '.FULL_PRODUCT_NAME')
PRODUCT_NAME=$(echo $BUILD_SETTINGS | jq -r '.PRODUCT_NAME')
echo "SCHEME=$SCHEME" >> "$GITHUB_ENV"
echo "FULL_PRODUCT_NAME=$FULL_PRODUCT_NAME" >> "$GITHUB_ENV"
echo "PRODUCT_NAME=$PRODUCT_NAME" >> "$GITHUB_ENV"
- name: Install the Apple certificate
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
run: |
# create variables
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
# import certificate from secrets
echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
# create temporary keychain
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
# import certificate to keychain
security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
security list-keychain -d user -s $KEYCHAIN_PATH
- name: Build
run: xcodebuild -scheme "$SCHEME" install DSTROOT=Build | xcpretty

- name: Package
run: |
npm install -g create-dmg
mkdir -p Build/dmg
create-dmg "Build/Applications/$FULL_PRODUCT_NAME" Build/dmg
mv Build/dmg/*.dmg Build/$PRODUCT_NAME.dmg
rm -r Build/dmg
- name: Archive production artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ env.PRODUCT_NAME }}.dmg
path: Build/${{ env.PRODUCT_NAME }}.dmg
2 changes: 1 addition & 1 deletion DotLocal.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\n\nSRC_CHECKSUM=$(find . -type f -name \"*.go\" -or -name \"go.mod\" -or -name \"go.sum\" | xargs cksum)\nEXISTING_CHECKSUM=\"\"\nif [[ -f \"./go_out/src_checksum\" ]]; then\n EXISTING_CHECKSUM=$(cat ./go_out/src_checksum)\nfi\nif [ \"$SRC_CHECKSUM\" == \"$EXISTING_CHECKSUM\" ]; then\n echo \"source hasn't changed. skipping\"\n exit 0\nfi\necho \"$SRC_CHECKSUM\" > ./go_out/src_checksum\n\nif [[ -f \"./.xcode.env\" ]]; then\n source \"./.xcode.env\"\nfi\nif [[ -f \"./.xcode.env.local\" ]]; then\n source \"./.xcode.env.local\"\nfi\n\nGOOS=darwin GOARCH=arm64 $GO_BINARY build -ldflags=\"-w\" -o ./go_out/arm64/dotlocal ./cmd/dotlocal/main.go\nGOOS=darwin GOARCH=arm64 $GO_BINARY build -ldflags=\"-w\" -o ./go_out/arm64/dotlocal-daemon ./cmd/dotlocal-daemon/main.go\nGOOS=darwin GOARCH=amd64 $GO_BINARY build -ldflags=\"-w\" -o ./go_out/amd64/dotlocal ./cmd/dotlocal/main.go\nGOOS=darwin GOARCH=amd64 $GO_BINARY build -ldflags=\"-w\" -o ./go_out/amd64/dotlocal-daemon ./cmd/dotlocal-daemon/main.go\nlipo -create -output ./go_out/dotlocal ./go_out/arm64/dotlocal ./go_out/amd64/dotlocal\nlipo -create -output ./go_out/dotlocal-daemon ./go_out/arm64/dotlocal-daemon ./go_out/amd64/dotlocal-daemon\n";
shellScript = "set -e\n\nmkdir -p ./go_out\n\nSRC_CHECKSUM=$(find . -type f -name \"*.go\" -or -name \"go.mod\" -or -name \"go.sum\" | xargs cksum)\nEXISTING_CHECKSUM=\"\"\nif [[ -f \"./go_out/src_checksum\" ]]; then\n EXISTING_CHECKSUM=$(cat ./go_out/src_checksum)\nfi\nif [ \"$SRC_CHECKSUM\" == \"$EXISTING_CHECKSUM\" ]; then\n echo \"source hasn't changed. skipping\"\n exit 0\nfi\necho \"$SRC_CHECKSUM\" > ./go_out/src_checksum\n\nif [[ -f \"./.xcode.env\" ]]; then\n source \"./.xcode.env\"\nfi\nif [[ -f \"./.xcode.env.local\" ]]; then\n source \"./.xcode.env.local\"\nfi\n\nGOOS=darwin GOARCH=arm64 $GO_BINARY build -ldflags=\"-w\" -o ./go_out/arm64/dotlocal ./cmd/dotlocal/main.go\nGOOS=darwin GOARCH=arm64 $GO_BINARY build -ldflags=\"-w\" -o ./go_out/arm64/dotlocal-daemon ./cmd/dotlocal-daemon/main.go\nGOOS=darwin GOARCH=amd64 $GO_BINARY build -ldflags=\"-w\" -o ./go_out/amd64/dotlocal ./cmd/dotlocal/main.go\nGOOS=darwin GOARCH=amd64 $GO_BINARY build -ldflags=\"-w\" -o ./go_out/amd64/dotlocal-daemon ./cmd/dotlocal-daemon/main.go\nlipo -create -output ./go_out/dotlocal ./go_out/arm64/dotlocal ./go_out/amd64/dotlocal\nlipo -create -output ./go_out/dotlocal-daemon ./go_out/arm64/dotlocal-daemon ./go_out/amd64/dotlocal-daemon\n";
};
/* End PBXShellScriptBuildPhase section */

Expand Down
12 changes: 1 addition & 11 deletions DotLocal/Sudo.swift
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public struct Sudo {

let (osStatus, stdout) = await executeWithPrivileges(authorization: authRef, path: path, arguments: arguments)

return (status == errAuthorizationSuccess, stdout)
return (osStatus == errAuthorizationSuccess, stdout)
}

private static func executeWithPrivileges(authorization: AuthorizationRef,
Expand Down Expand Up @@ -80,16 +80,6 @@ public struct Sudo {

// Convert the data to a string (adjust the encoding as needed)
fileContent = String(data: content, encoding: .utf8) ?? ""
// let bufferSize = 1024
// print("1")
// guard let _read = file._read else {
// print("???")
// return
// }
// print("2")
// var buffer = [CChar](repeating: 0, count: Int(bufferSize))
// _read(&file, &buffer, Int32(bufferSize))
// print("got \(buffer)")
}
}
}
Expand Down

0 comments on commit 706c4bc

Please sign in to comment.