From 106d69f5c2392c9b590802f9d05d4df7616cd77d Mon Sep 17 00:00:00 2001 From: Alexander Mnich <56564725+a-mnich@users.noreply.github.com> Date: Sat, 11 May 2024 17:09:36 +0000 Subject: [PATCH] automatically create releases --- .github/workflows/build-zed.yml | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/.github/workflows/build-zed.yml b/.github/workflows/build-zed.yml index c3d4cf7..59662e4 100644 --- a/.github/workflows/build-zed.yml +++ b/.github/workflows/build-zed.yml @@ -3,14 +3,48 @@ name: Build Zed on: workflow_dispatch: + jobs: + get-versions: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - name: Get last releases + id: get-releases + uses: actions/github-script@v5 + with: + script: | + const releasesToCheck = 5; + const zedReleases = await github.repos.listReleases({ + owner: 'zed-industries', + repo: 'zed', + per_page: releasesToCheck + }); + const thisReleases = await github.repos.listReleases({ + owner: context.repo.owner, + repo: context.repo.repo, + per_page: 100 + }); + const thisReleaseTags = new Set(thisReleases.data.map(release => release.tag_name)); + const zedReleaseTagsWithoutThisRelease = zedReleases.data.map(release => release.tag_name).filter(tag => !thisReleaseTags.has(tag)); + return zedReleaseTagsWithoutThisRelease; + + - name: Set matrix for build + id: set-matrix + run: echo "::set-output name=matrix::${{ toJSON(steps.get-releases.outputs.result) }}" + build: runs-on: windows-latest + strategy: + matrix: + version: ${{ fromJson(needs.get-versions.outputs.matrix) }} steps: - name: Checkout code uses: actions/checkout@v2 with: repository: zed-industries/zed + ref: ${{ matrix.version }} - name: Install Rust uses: actions-rs/toolchain@v1 @@ -37,3 +71,9 @@ jobs: with: name: zed path: target\release\Zed.exe + + - name: Create Release + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ matrix.version }} + files: target\release\Zed.exe \ No newline at end of file