mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-16 08:46:08 +03:00
64
.github/workflows/release-pr.yml
vendored
64
.github/workflows/release-pr.yml
vendored
@ -7,6 +7,48 @@ on:
|
|||||||
name: Release PR
|
name: Release PR
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
sentry-dsym-debug:
|
||||||
|
runs-on: namespace-profile-ghostty-sm
|
||||||
|
needs: [build-macos-debug]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install sentry-cli
|
||||||
|
run: |
|
||||||
|
curl -sL https://sentry.io/get-cli/ | bash
|
||||||
|
|
||||||
|
- name: Download dSYM
|
||||||
|
run: |
|
||||||
|
GHOSTTY_COMMIT_LONG=$(git rev-parse HEAD)
|
||||||
|
curl -L https://pr.files.ghostty.dev/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-debug-dsym.zip > dsym.zip
|
||||||
|
|
||||||
|
- name: Upload dSYM to Sentry
|
||||||
|
env:
|
||||||
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
||||||
|
run: |
|
||||||
|
sentry-cli dif upload --project ghostty --wait dsym.zip
|
||||||
|
|
||||||
|
sentry-dsym:
|
||||||
|
runs-on: namespace-profile-ghostty-sm
|
||||||
|
needs: [build-macos]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install sentry-cli
|
||||||
|
run: |
|
||||||
|
curl -sL https://sentry.io/get-cli/ | bash
|
||||||
|
|
||||||
|
- name: Download dSYM
|
||||||
|
run: |
|
||||||
|
GHOSTTY_COMMIT_LONG=$(git rev-parse HEAD)
|
||||||
|
curl -L https://pr.files.ghostty.dev/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-dsym.zip > dsym.zip
|
||||||
|
|
||||||
|
- name: Upload dSYM to Sentry
|
||||||
|
env:
|
||||||
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
||||||
|
run: |
|
||||||
|
sentry-cli dif upload --project ghostty --wait dsym.zip
|
||||||
|
|
||||||
build-macos:
|
build-macos:
|
||||||
runs-on: namespace-profile-ghostty-macos
|
runs-on: namespace-profile-ghostty-macos
|
||||||
timeout-minutes: 90
|
timeout-minutes: 90
|
||||||
@ -42,6 +84,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "GHOSTTY_BUILD=$(git rev-list --count head)" >> $GITHUB_ENV
|
echo "GHOSTTY_BUILD=$(git rev-list --count head)" >> $GITHUB_ENV
|
||||||
echo "GHOSTTY_COMMIT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
|
echo "GHOSTTY_COMMIT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
|
||||||
|
echo "GHOSTTY_COMMIT_LONG=$(git rev-parse HEAD)" >> $GITHUB_ENV
|
||||||
|
|
||||||
# GhosttyKit is the framework that is built from Zig for our native
|
# GhosttyKit is the framework that is built from Zig for our native
|
||||||
# Mac app to access. Build this in release mode.
|
# Mac app to access. Build this in release mode.
|
||||||
@ -132,14 +175,18 @@ jobs:
|
|||||||
|
|
||||||
# Zip up the app
|
# Zip up the app
|
||||||
- name: Zip App
|
- name: Zip App
|
||||||
run: cd macos/build/Release && zip -9 -r --symlinks ../../../ghostty-macos-universal.zip Ghostty.app
|
run: |
|
||||||
|
cd macos/build/Release
|
||||||
|
zip -9 -r --symlinks ../../../ghostty-macos-universal.zip Ghostty.app
|
||||||
|
zip -9 -r --symlinks ../../../ghostty-macos-universal-dsym.zip Ghostty.app.dSYM/
|
||||||
|
|
||||||
# Update Blob Storage
|
# Update Blob Storage
|
||||||
- name: Prep R2 Storage
|
- name: Prep R2 Storage
|
||||||
run: |
|
run: |
|
||||||
mkdir blob
|
mkdir blob
|
||||||
mkdir -p blob/${GHOSTTY_BUILD}
|
mkdir -p blob/${GHOSTTY_COMMIT_LONG}
|
||||||
cp ghostty-macos-universal.zip blob/${GHOSTTY_BUILD}/ghostty-macos-universal.zip
|
cp ghostty-macos-universal.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal.zip
|
||||||
|
cp ghostty-macos-universal-dsym.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-dsym.zip
|
||||||
- name: Upload to R2
|
- name: Upload to R2
|
||||||
uses: ryand56/r2-upload-action@latest
|
uses: ryand56/r2-upload-action@latest
|
||||||
with:
|
with:
|
||||||
@ -185,6 +232,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "GHOSTTY_BUILD=$(git rev-list --count head)" >> $GITHUB_ENV
|
echo "GHOSTTY_BUILD=$(git rev-list --count head)" >> $GITHUB_ENV
|
||||||
echo "GHOSTTY_COMMIT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
|
echo "GHOSTTY_COMMIT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
|
||||||
|
echo "GHOSTTY_COMMIT_LONG=$(git rev-parse HEAD)" >> $GITHUB_ENV
|
||||||
|
|
||||||
# GhosttyKit is the framework that is built from Zig for our native
|
# GhosttyKit is the framework that is built from Zig for our native
|
||||||
# Mac app to access. Build this in release mode.
|
# Mac app to access. Build this in release mode.
|
||||||
@ -275,14 +323,18 @@ jobs:
|
|||||||
|
|
||||||
# Zip up the app
|
# Zip up the app
|
||||||
- name: Zip App
|
- name: Zip App
|
||||||
run: cd macos/build/Release && zip -9 -r --symlinks ../../../ghostty-macos-universal-debug.zip Ghostty.app
|
run: |
|
||||||
|
cd macos/build/Release
|
||||||
|
zip -9 -r --symlinks ../../../ghostty-macos-universal-debug.zip Ghostty.app
|
||||||
|
zip -9 -r --symlinks ../../../ghostty-macos-universal-debug-dsym.zip Ghostty.app.dSYM/
|
||||||
|
|
||||||
# Update Blob Storage
|
# Update Blob Storage
|
||||||
- name: Prep R2 Storage
|
- name: Prep R2 Storage
|
||||||
run: |
|
run: |
|
||||||
mkdir blob
|
mkdir blob
|
||||||
mkdir -p blob/${GHOSTTY_BUILD}
|
mkdir -p blob/${GHOSTTY_COMMIT_LONG}
|
||||||
cp ghostty-macos-universal-debug.zip blob/${GHOSTTY_BUILD}/ghostty-macos-universal-debug.zip
|
cp ghostty-macos-universal-debug.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-debug.zip
|
||||||
|
cp ghostty-macos-universal-debug-dsym.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-debug-dsym.zip
|
||||||
- name: Upload to R2
|
- name: Upload to R2
|
||||||
uses: ryand56/r2-upload-action@latest
|
uses: ryand56/r2-upload-action@latest
|
||||||
with:
|
with:
|
||||||
|
66
.github/workflows/release-tip.yml
vendored
66
.github/workflows/release-tip.yml
vendored
@ -21,6 +21,48 @@ jobs:
|
|||||||
git tag -fa tip -m "Latest Continuous Release" ${GITHUB_SHA}
|
git tag -fa tip -m "Latest Continuous Release" ${GITHUB_SHA}
|
||||||
git push --force origin tip
|
git push --force origin tip
|
||||||
|
|
||||||
|
sentry-dsym-debug:
|
||||||
|
runs-on: namespace-profile-ghostty-sm
|
||||||
|
needs: [build-macos-debug]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install sentry-cli
|
||||||
|
run: |
|
||||||
|
curl -sL https://sentry.io/get-cli/ | bash
|
||||||
|
|
||||||
|
- name: Download dSYM
|
||||||
|
run: |
|
||||||
|
GHOSTTY_COMMIT_LONG=$(git rev-parse HEAD)
|
||||||
|
curl -L https://tip.files.ghostty.dev/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-debug-dsym.zip > dsym.zip
|
||||||
|
|
||||||
|
- name: Upload dSYM to Sentry
|
||||||
|
env:
|
||||||
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
||||||
|
run: |
|
||||||
|
sentry-cli dif upload --project ghostty --wait dsym.zip
|
||||||
|
|
||||||
|
sentry-dsym:
|
||||||
|
runs-on: namespace-profile-ghostty-sm
|
||||||
|
needs: [build-macos]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install sentry-cli
|
||||||
|
run: |
|
||||||
|
curl -sL https://sentry.io/get-cli/ | bash
|
||||||
|
|
||||||
|
- name: Download dSYM
|
||||||
|
run: |
|
||||||
|
GHOSTTY_COMMIT_LONG=$(git rev-parse HEAD)
|
||||||
|
curl -L https://tip.files.ghostty.dev/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-dsym.zip > dsym.zip
|
||||||
|
|
||||||
|
- name: Upload dSYM to Sentry
|
||||||
|
env:
|
||||||
|
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
||||||
|
run: |
|
||||||
|
sentry-cli dif upload --project ghostty --wait dsym.zip
|
||||||
|
|
||||||
build-macos:
|
build-macos:
|
||||||
if: |
|
if: |
|
||||||
${{
|
${{
|
||||||
@ -66,6 +108,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "GHOSTTY_BUILD=$(git rev-list --count head)" >> $GITHUB_ENV
|
echo "GHOSTTY_BUILD=$(git rev-list --count head)" >> $GITHUB_ENV
|
||||||
echo "GHOSTTY_COMMIT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
|
echo "GHOSTTY_COMMIT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
|
||||||
|
echo "GHOSTTY_COMMIT_LONG=$(git rev-parse HEAD)" >> $GITHUB_ENV
|
||||||
|
|
||||||
# GhosttyKit is the framework that is built from Zig for our native
|
# GhosttyKit is the framework that is built from Zig for our native
|
||||||
# Mac app to access. Build this in release mode.
|
# Mac app to access. Build this in release mode.
|
||||||
@ -154,9 +197,12 @@ jobs:
|
|||||||
echo "Attach staple"
|
echo "Attach staple"
|
||||||
xcrun stapler staple "macos/build/Release/Ghostty.app"
|
xcrun stapler staple "macos/build/Release/Ghostty.app"
|
||||||
|
|
||||||
# Zip up the app
|
# Zip up the app and symbols
|
||||||
- name: Zip App
|
- name: Zip App
|
||||||
run: cd macos/build/Release && zip -9 -r --symlinks ../../../ghostty-macos-universal.zip Ghostty.app
|
run: |
|
||||||
|
cd macos/build/Release
|
||||||
|
zip -9 -r --symlinks ../../../ghostty-macos-universal.zip Ghostty.app
|
||||||
|
zip -9 -r --symlinks ../../../ghostty-macos-universal-dsym.zip Ghostty.app.dSYM/
|
||||||
|
|
||||||
# Update Release
|
# Update Release
|
||||||
- name: Release
|
- name: Release
|
||||||
@ -184,8 +230,9 @@ jobs:
|
|||||||
- name: Prep R2 Storage
|
- name: Prep R2 Storage
|
||||||
run: |
|
run: |
|
||||||
mkdir blob
|
mkdir blob
|
||||||
mkdir -p blob/${GHOSTTY_BUILD}
|
mkdir -p blob/${GHOSTTY_COMMIT_LONG}
|
||||||
cp ghostty-macos-universal.zip blob/${GHOSTTY_BUILD}/ghostty-macos-universal.zip
|
cp ghostty-macos-universal.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal.zip
|
||||||
|
cp ghostty-macos-universal-dsym.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-dsym.zip
|
||||||
cp appcast_new.xml blob/appcast.xml
|
cp appcast_new.xml blob/appcast.xml
|
||||||
- name: Upload to R2
|
- name: Upload to R2
|
||||||
uses: ryand56/r2-upload-action@latest
|
uses: ryand56/r2-upload-action@latest
|
||||||
@ -242,6 +289,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "GHOSTTY_BUILD=$(git rev-list --count head)" >> $GITHUB_ENV
|
echo "GHOSTTY_BUILD=$(git rev-list --count head)" >> $GITHUB_ENV
|
||||||
echo "GHOSTTY_COMMIT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
|
echo "GHOSTTY_COMMIT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
|
||||||
|
echo "GHOSTTY_COMMIT_LONG=$(git rev-parse HEAD)" >> $GITHUB_ENV
|
||||||
|
|
||||||
# GhosttyKit is the framework that is built from Zig for our native
|
# GhosttyKit is the framework that is built from Zig for our native
|
||||||
# Mac app to access. Build this in release mode.
|
# Mac app to access. Build this in release mode.
|
||||||
@ -332,7 +380,10 @@ jobs:
|
|||||||
|
|
||||||
# Zip up the app
|
# Zip up the app
|
||||||
- name: Zip App
|
- name: Zip App
|
||||||
run: cd macos/build/Release && zip -9 -r --symlinks ../../../ghostty-macos-universal-debug.zip Ghostty.app
|
run: |
|
||||||
|
cd macos/build/Release
|
||||||
|
zip -9 -r --symlinks ../../../ghostty-macos-universal-debug.zip Ghostty.app
|
||||||
|
zip -9 -r --symlinks ../../../ghostty-macos-universal-debug-dsym.zip Ghostty.app.dSYM/
|
||||||
|
|
||||||
# Update Release
|
# Update Release
|
||||||
- name: Release
|
- name: Release
|
||||||
@ -349,8 +400,9 @@ jobs:
|
|||||||
- name: Prep R2 Storage
|
- name: Prep R2 Storage
|
||||||
run: |
|
run: |
|
||||||
mkdir blob
|
mkdir blob
|
||||||
mkdir -p blob/${GHOSTTY_BUILD}
|
mkdir -p blob/${GHOSTTY_COMMIT_LONG}
|
||||||
cp ghostty-macos-universal-debug.zip blob/${GHOSTTY_BUILD}/ghostty-macos-universal-debug.zip
|
cp ghostty-macos-universal-debug.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-debug.zip
|
||||||
|
cp ghostty-macos-universal-debug-dsym.zip blob/${GHOSTTY_COMMIT_LONG}/ghostty-macos-universal-debug-dsym.zip
|
||||||
- name: Upload to R2
|
- name: Upload to R2
|
||||||
uses: ryand56/r2-upload-action@latest
|
uses: ryand56/r2-upload-action@latest
|
||||||
with:
|
with:
|
||||||
|
5
dist/macos/update_appcast_tip.py
vendored
5
dist/macos/update_appcast_tip.py
vendored
@ -22,6 +22,7 @@ from datetime import datetime, timezone
|
|||||||
now = datetime.now(timezone.utc)
|
now = datetime.now(timezone.utc)
|
||||||
build = os.environ["GHOSTTY_BUILD"]
|
build = os.environ["GHOSTTY_BUILD"]
|
||||||
commit = os.environ["GHOSTTY_COMMIT"]
|
commit = os.environ["GHOSTTY_COMMIT"]
|
||||||
|
commit_long = os.environ["GHOSTTY_COMMIT_LONG"]
|
||||||
repo = "https://github.com/ghostty-org/ghostty"
|
repo = "https://github.com/ghostty-org/ghostty"
|
||||||
|
|
||||||
# Read our sign_update output
|
# Read our sign_update output
|
||||||
@ -83,7 +84,7 @@ elem.text = "12.0.0"
|
|||||||
elem = ET.SubElement(item, "description")
|
elem = ET.SubElement(item, "description")
|
||||||
elem.text = f"""
|
elem.text = f"""
|
||||||
<p>
|
<p>
|
||||||
Automated build from commit <code><a href="{repo}/commits/{commit}">{commit}</a></code>
|
Automated build from commit <code><a href="{repo}/commits/{commit_long}">{commit}</a></code>
|
||||||
on {now.strftime('%Y-%m-%d')}.
|
on {now.strftime('%Y-%m-%d')}.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@ -93,7 +94,7 @@ commit history <a href="{repo}">on GitHub</a> for all changes.
|
|||||||
</p>
|
</p>
|
||||||
"""
|
"""
|
||||||
elem = ET.SubElement(item, "enclosure")
|
elem = ET.SubElement(item, "enclosure")
|
||||||
elem.set("url", f"https://tip.files.ghostty.dev/{build}/ghostty-macos-universal.zip")
|
elem.set("url", f"https://tip.files.ghostty.dev/{commit_long}/ghostty-macos-universal.zip")
|
||||||
elem.set("type", "application/octet-stream")
|
elem.set("type", "application/octet-stream")
|
||||||
for key, value in attrs.items():
|
for key, value in attrs.items():
|
||||||
elem.set(key, value)
|
elem.set(key, value)
|
||||||
|
@ -770,6 +770,7 @@
|
|||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
DEVELOPMENT_TEAM = "";
|
DEVELOPMENT_TEAM = "";
|
||||||
ENABLE_HARDENED_RUNTIME = YES;
|
ENABLE_HARDENED_RUNTIME = YES;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
|
Reference in New Issue
Block a user