Skip to content

Update build.yml

Update build.yml #9

Workflow file for this run

name: Build Zed Lastest Release
on:
schedule:
- cron: "0 0 * * *" # Runs every night at midnight UTC
push:
branches:
- main
jobs:
build:
runs-on: windows-latest
outputs:
latest_tag: ${{ steps.get_latest_tag.outputs.latest_tag }}
steps:
- name: Get latest Zed release tag
id: get_latest_tag
env:
GH_TOKEN: ${{ github.token }}
run: |
$latestTag = (gh release list -R zed-industries/zed -L 3 --json tagName,isLatest -q '.[] | select(.isLatest == true) | .tagName')
echo "Latest Zed release tag: $latestTag"
echo "latest_tag=$latestTag" >> $env:GITHUB_OUTPUT
- name: Get our latest release name
id: get_our_release
env:
GH_TOKEN: ${{ github.token }}
run: |
$releases = gh release list -L 1 --json name -q '.[].name' || true
$ourLatestRelease = ""
if ($releases) {
$ourLatestRelease = $releases[0]
echo "Our latest release: $ourLatestRelease"
} else {
echo "No releases found or error occurred. Setting OUR_LATEST_RELEASE to empty string."
}
echo "OUR_LATEST_RELEASE=$ourLatestRelease" >> $env:GITHUB_ENV
- name: Compare and checkout if needed
run: |
if ("${{ env.OUR_LATEST_RELEASE }}" -eq "${{ steps.get_latest_tag.outputs.latest_tag }}") {
echo "Our latest release matches Zed's latest tag. Exiting."
exit 0
} else {
echo "Checking out Zed's latest tag: ${{ steps.get_latest_tag.outputs.latest_tag }}"
}
- name: Checkout Zed repository
uses: actions/checkout@v3
with:
repository: zed-industries/zed
ref: ${{ steps.get_latest_tag.outputs.latest_tag }}
fetch-depth: 1
- name: Set up for build
run: |
echo "Ready to build ${{ steps.get_latest_tag.outputs.latest_tag }}"
- name: Install rust nightly
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
target: wasm32-wasi
- name: Rust Cache
uses: Swatinem/rust-cache@v2.7.3
- name: Build release
uses: actions-rs/cargo@v1
with:
command: build
args: --release
- name: Archive build
uses: actions/upload-artifact@v4
with:
name: zed-release
path: target/release/zed.exe
release:
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download release artifact
uses: actions/download-artifact@v4
with:
name: zed-release
path: zed-release
- name: Zip the release artifact
run: zip -r zed-windows.zip zed-release/*
- name: Upload release build artifact to GitHub Release
uses: softprops/action-gh-release@v2
with:
name: ${{ needs.build.outputs.latest_tag }}
tag_name: ${{ needs.build.outputs.latest_tag }}
draft: false
make_latest: true
files: zed-windows.zip