Skip to content

👻 Ghostty Tip ("Nightly") #975

👻 Ghostty Tip ("Nightly")

👻 Ghostty Tip ("Nightly") #975

Workflow file for this run

name: Build
concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch: {}
pull_request:
paths-ignore:
- "**/*.md"
- "**/VERSION"
types: [opened, synchronize, reopened]
release:
types: [published]
jobs:
build_appimage:
permissions:
actions: read
security-events: write
contents: write
name: 👻 Build Ghostty (${{ matrix.arch }})
runs-on: ${{ matrix.runs-on }}
strategy:
matrix:
include:
- arch: aarch64
platform: linux/arm64
runs-on: ubuntu-24.04-arm
- arch: x86_64
platform: linux/amd64
runs-on: ubuntu-24.04
container:
image: ghcr.io/pkgforge-dev/archlinux:latest
steps:
- name: Checkout ghostty-appimage
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Cache dependencies
id: cache-ghostty
uses: actions/cache@v4
with:
path: |
/var/cache/pacman
/tmp/offline-cache
/root/.cache/zig
key: ${{ runner.os }}-${{ matrix.arch }}-ghostty-${{ hashFiles('**/VERSION') }}
restore-keys: |
${{ runner.os }}-${{ matrix.arch }}-ghostty-
- name: Setup build environment
run: |
if [ "${{ github.event_name }}" == "schedule" ]; then
export ZIG_VERSION=0.14.0
else
export ZIG_VERSION=0.13.0
fi
ZIG_VERSION=$ZIG_VERSION ./setup.sh
- name: Build Ghostty AppImage
run: |
if [ "${{ github.event_name }}" == "schedule" ]; then
echo "tip" > VERSION
fi
./build.sh
- name: Upload AppImage Artifacts
uses: actions/upload-artifact@v4
with:
name: ghostty-appimage-${{ matrix.arch }}
retention-days: 7
path: /tmp/ghostty-build/Ghostty-*-${{ matrix.arch }}.AppImage*
tag:
name: "👻 Tip Tag"
if: ${{ github.event_name == 'schedule' && github.ref_name == 'main' }}
permissions:
actions: read
security-events: write
contents: write
runs-on: ubuntu-latest
needs:
- build_appimage
steps:
- uses: actions/checkout@v4 # zizmor: ignore[artipacked]
- name: Tip Tag
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git tag -fa tip -m "Latest Continuous Release" ${GITHUB_SHA}
git push --force origin tip
- name: clean-up old release assets
run: |
for asset in $(gh release view tip --json assets --jq '.assets[].id'); do
gh release delete-asset $asset
done
env:
GH_TOKEN: ${{ github.token }}
release_stable:
name: 👻 Release Ghostty AppImage (Stable)
needs:
- build_appimage
permissions:
actions: read
contents: write
runs-on: ubuntu-latest
if: ${{ github.event_name == 'release' }}
steps:
- uses: actions/download-artifact@v4
with:
name: ghostty-appimage-aarch64
- uses: actions/download-artifact@v4
with:
name: ghostty-appimage-x86_64
- name: Ghostty stable
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: "*.AppImage*"
tag: ${{ github.ref }}
overwrite: true
file_glob: true
release_nightly:
name: 👻 Release Ghostty AppImage (Nightly)
if: ${{ github.event_name == 'schedule' && github.ref_name == 'main' }}
needs:
- build_appimage
- tag
permissions:
actions: read
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
name: ghostty-appimage-aarch64
- uses: actions/download-artifact@v4
with:
name: ghostty-appimage-x86_64
- name: Ghostty Tip ("Nightly")
uses: softprops/[email protected]
with:
name: '👻 Ghostty Tip ("Nightly")'
prerelease: true
tag_name: tip
target_commitish: ${{ github.sha }}
files: |
*.AppImage*