This repository houses an automated CI/CD pipeline for compiling and distributing Zed, a cutting-edge text editor, for the Windows platform. Leveraging GitHub Actions, it orchestrates the build process for Windows, generating both a standalone executable (.exe) and a Windows app package (.msix) for seamless deployment.
Disclaimer: This project is not affiliated with Zed Industries. It is an independent, community-driven endeavor.
- Automated cross-compilation of Zed for Windows (x86_64 architecture)
- MSIX package generation for streamlined Windows 10/11 installation
- Automated pruning of obsolete build artifacts
- Version management based on Zed's official release tags
- Artifact uploading to GitHub releases
The builds produced by this pipeline maintain a high level of integrity and can be considered safe for use. Here's a technical breakdown of the security measures:
- Source integrity: The codebase is pulled directly from Zed Industries' official repository, ensuring no unauthorized modifications.
- Build transparency: The entire build process is codified in the
build.yml
workflow file, allowing for thorough auditing. - Immutable source: No alterations are made to the source code during the build pipeline execution.
- Direct artifact publishing: Generated artifacts are uploaded to GitHub releases programmatically, minimizing the risk of tampering.
While these measures ensure a high degree of safety, it's advisable to employ up-to-date antivirus software and exercise standard precautions as with any third-party software.
- Navigate to the "Releases" section of this GitHub repository.
- Locate and download the latest Zed build for Windows (either .exe or .msix).
- For .exe: Execute the file directly.
- For .msix: Initiate installation by double-clicking, leveraging the Windows app installer.
Some segments of the build process involve intricate operations. Here's an in-depth look at key components:
& "C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\MakeAppx.exe" pack /d . /p Zed-windows-amd64-${{ env.LATEST_TAG }}.msix /f AppxManifest.xml
This command invokes MakeAppx.exe
from the Windows SDK to generate the MSIX package:
/d .
: Specifies the current directory as the source for package contents./p
: Designates the output package name, incorporating the latest version tag./f AppxManifest.xml
: Points to the manifest file defining the package structure and metadata.
The pipeline employs a sophisticated versioning mechanism:
- name: Get latest release tag from GitHub API
id: get_latest_tag
run: |
$latestRelease = (Invoke-RestMethod -Uri https://api.github.com/repos/zed-industries/zed/releases/)
$latestTag = $latestRelease.tag_name
$isPrerelease = $latestRelease.prerelease.ToString().ToLower()
if (-not $latestTag) {
$latestTag = "v0.0.0"
$isPrerelease = "false"
}
echo "LATEST_TAG=$latestTag" >> $env:GITHUB_ENV
echo "IS_PRERELEASE=$isPrerelease" >> $env:GITHUB_ENV
This PowerShell script queries the GitHub API to fetch the latest release tag from Zed's official repository. It handles edge cases, such as the absence of releases, by defaulting to "v0.0.0". The retrieved version information is then propagated to subsequent steps via GitHub Actions environment variables.
Contributions to enhance this build pipeline are welcome. Please adhere to the following protocol:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
See the LICENSE file for comprehensive terms and conditions.
To reiterate, this project operates independently of Zed Industries. It is a community-driven initiative aimed at facilitating Zed accessibility on Windows platforms. Utilize these builds at your own discretion.