@@ -3,8 +3,6 @@ name: Build and Release
5 branches: [master, main]
5 branches: [master, main]
8 pull_request:
6 pull_request:
9 branches: [master, main]
7 branches: [master, main]
@@ -133,33 +131,38 @@ jobs:
133 name: ParseableViewer-universal
131 name: ParseableViewer-universal
134 path: ParseableViewer-universal.zip
132 path: ParseableViewer-universal.zip
136− prerelease:
134+ release:
137 needs: create-universal
135 needs: create-universal
138 runs-on: macos-15
136 runs-on: macos-15
139 concurrency:
137 concurrency:
140 group: release
138 group: release
141 cancel-in-progress: false
139 cancel-in-progress: false
142− if: github.event_name == 'push' && !startsWith(github.ref, 'refs/tags/')
140+ if: github.event_name == 'push'
143 permissions:
141 permissions:
144 contents: write
142 contents: write
145+ uses: actions/checkout@v4
147+ - name: Compute version from commit timestamp
150+ COMMIT_TIMESTAMP=$(TZ=UTC git log -1 --format='%cd' --date=format-local:'%Y%m%d.%H%M%S')
151+ echo "timestamp=$COMMIT_TIMESTAMP" >> "$GITHUB_OUTPUT"
146 - name: Download all artifacts
153 - name: Download all artifacts
147 uses: actions/download-artifact@v4
154 uses: actions/download-artifact@v4
149 path: artifacts
156 path: artifacts
151− - name: Create or update prerelease
158+ - name: Create release
152 uses: softprops/action-gh-release@v2
159 uses: softprops/action-gh-release@v2
154− tag_name: latest
161+ tag_name: ${{ steps.version.outputs.timestamp }}
155− name: Latest Build
162+ name: ${{ steps.version.outputs.timestamp }}
157− Automated prerelease build from commit ${{ github.sha }}.
159 **Branch:** ${{ github.ref_name }}
164 **Branch:** ${{ github.ref_name }}
160 **Commit:** [`${{ github.sha }}`](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }})
165 **Commit:** [`${{ github.sha }}`](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }})
164 artifacts/ParseableViewer-arm64/ParseableViewer-arm64.zip
167 artifacts/ParseableViewer-arm64/ParseableViewer-arm64.zip
165 artifacts/ParseableViewer-x86_64/ParseableViewer-x86_64.zip
168 artifacts/ParseableViewer-x86_64/ParseableViewer-x86_64.zip
@@ -167,66 +170,3 @@ jobs:
168 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
171 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
170− - name: Update Homebrew cask
172− HOMEBREW_TAP_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
174− SHA_ARM64=$(shasum -a 256 artifacts/ParseableViewer-arm64/ParseableViewer-arm64.zip | awk '{print $1}')
175− SHA_X86_64=$(shasum -a 256 artifacts/ParseableViewer-x86_64/ParseableViewer-x86_64.zip | awk '{print $1}')
176− SHORT_SHA="${GITHUB_SHA::7}"
178− cat > /tmp/parseable-viewer.rb << CASK
179− cask "parseable-viewer" do
180− arch arm: "arm64", intel: "x86_64"
182− version "$SHORT_SHA"
183− sha256 arm: "$SHA_ARM64", intel: "$SHA_X86_64"
185− url "https://github.com/ilyakooo0/parseable-macos/releases/download/latest/ParseableViewer-#{arch}.zip"
186− name "Parseable Viewer"
187− desc "A macOS client for Parseable"
188− homepage "https://github.com/ilyakooo0/parseable-macos"
190− app "Parseable Viewer.app"
193− system_command "/usr/bin/xattr",
194− args: ["-cr", "#{appdir}/Parseable Viewer.app"],
200− # Push updated cask to homebrew-tap
202− git clone "https://x-access-token:${HOMEBREW_TAP_TOKEN}@github.com/ilyakooo0/homebrew-tap.git" .
203− cp /tmp/parseable-viewer.rb Casks/parseable-viewer.rb
204− git config user.name "github-actions[bot]"
205− git config user.email "github-actions[bot]@users.noreply.github.com"
206− git add Casks/parseable-viewer.rb
207− git commit -m "Update parseable-viewer to ${SHORT_SHA}"
211− needs: create-universal
213− if: startsWith(github.ref, 'refs/tags/v')
217− - name: Download all artifacts
218− uses: actions/download-artifact@v4
222− - name: Create Draft Release
223− uses: softprops/action-gh-release@v2
226− generate_release_notes: true
228− artifacts/ParseableViewer-arm64/ParseableViewer-arm64.zip
229− artifacts/ParseableViewer-x86_64/ParseableViewer-x86_64.zip
230− artifacts/ParseableViewer-universal/ParseableViewer-universal.zip
232− GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}