Update build.yml #9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |