Skip to content

feat(ci): Publish installer PKG for macOS standalone#8795

Merged
jamilbk merged 3 commits into
mainfrom
feat/publish-macos-pkg
Apr 16, 2025
Merged

feat(ci): Publish installer PKG for macOS standalone#8795
jamilbk merged 3 commits into
mainfrom
feat/publish-macos-pkg

Conversation

@jamilbk

@jamilbk jamilbk commented Apr 16, 2025

Copy link
Copy Markdown
Member

Microsoft Intune's DMG provisioner currently fails unexpectedly when trying to provision our published DMG file with the error:

The DMG file couldn't be mounted for installation. Check the DMG file if the error persists. (0x87D30139)

I ran the following verification commands locally, which all passed:

hdiutil verify -verbose <dmg>
hdiutil imageinfo -verbose <dmg>
hdiutil hfsanalyze -verbose <dmg>
hdiutil checksum -type SHA256 -verbose <dmg>
hdiutil info -verbose
hdiutil pmap -verbose <dmg>

So the issue appears to be most likely that Intune doens't like the /Applications shortcut in the DMG. This is a UX feature to make it easy to drag the application the /Applications folder upon opening the DMG.

So we're publishing an PKG in addition to the DMG, which should be a more reliable artifact for MDMs to use.

Copilot AI review requested due to automatic review settings April 16, 2025 14:38
@vercel

vercel Bot commented Apr 16, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
firezone ✅ Ready (Inspect) Visit Preview 💬 Add feedback Apr 16, 2025 3:54pm

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 4 out of 6 changed files in this pull request and generated no comments.

Files not reviewed (2)
  • scripts/build/macos-standalone.sh: Language not supported
  • scripts/upload/app-store-connect.sh: Language not supported
Comments suppressed due to low confidence (4)

website/src/middleware.ts:14

  • [nitpick] The destination URL for the PKG redirect shares the same 'firezone-macos-client' prefix as the DMG. Consider clarifying the naming convention if a distinct identifier for the installer package is intended.
      "https://www.github.com/firezone/firezone/releases/download/macos-client-:version/firezone-macos-client-:version.pkg",

website/src/components/Changelog/Apple.tsx:18

  • [nitpick] The changelog now includes a separate entry for the PKG file while the DMG entry title has been updated. Confirm that the naming and labeling clearly distinguish between the installer types to avoid user confusion.
      href: "/dl/firezone-client-macos/pkg/:version",

website/redirects.js:17

  • [nitpick] The new redirect for the PKG file uses a URL structure similar to the DMG. Ensure that this naming convention is consistent and clear for users identifying the installer package.
    source: "/dl/firezone-client-macos/pkg/latest",

.github/workflows/_swift.yml:113

  • [nitpick] The upload-artifact step now aggregates both DMG and PKG files under a single artifact name. Verify that downstream processes can correctly handle multiple files within one artifact bundle.
          name: macos-client-standalone

@jamilbk jamilbk requested a review from a team April 16, 2025 15:07
# Verify notarization
xcrun stapler validate "$dmg_path"

echo "Disk image notarized!"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if it matters, but it looks like this echo message was left out of the change. Was that intentional?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch fixed

Comment thread scripts/upload/app-store-connect.sh Outdated
xcrun altool \
--upload-app \
-f "$ARTIFACT_PATH" \
-f "$PRIMARY_ARTIFACT_PATH" \

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm probably missing something, but I'm not seeing the name PRIMARY_ARTIFACT_PATH set anywhere in this PR. Is that being set outside of these scripts?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah good catch. Will get that fixed.

Comment thread scripts/upload/app-store-connect.sh Outdated
Signed-off-by: Jamil <jamilbk@users.noreply.github.com>

@bmanifold bmanifold left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jamilbk jamilbk added this pull request to the merge queue Apr 16, 2025
Merged via the queue into main with commit fc7b6e3 Apr 16, 2025
@jamilbk jamilbk deleted the feat/publish-macos-pkg branch April 16, 2025 16:40
github-merge-queue Bot pushed a commit that referenced this pull request Apr 21, 2025
In #8795 we added an additional path to the artifact upload which
appeared to have broken it. The action cannot seem to handle multiple
direct paths that lead to files. It tries to but fails:

```
Multiple search paths detected. Calculating the least common ancestor of all paths
The least common ancestor is /Users/runner/work/firezone/firezone/"/Users/runner/work/_temp. This will be the root directory of the artifact
Warning: No files were found with the provided path: "/Users/runner/work/_temp/firezone-macos-client-1.4.12.dmg"
"/Users/runner/work/_temp/firezone-macos-client-1.4.12.pkg". No artifacts will be uploaded.
```

Source:
https://github.com/firezone/firezone/actions/runs/14571295945/job/40868936348#step:7:31

Splitting this step into two and creating one artifact each fixes this
as can be seen in the following job (which I triggered for this PR):
https://github.com/firezone/firezone/actions/runs/14572176039/job/40871304453
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants