name: release-snapshot on: push: branches: - "main" - "demo-*" - "bugbash-*" # Confirm that snapshot builds work if this file is modified. pull_request: types: - opened - synchronize - reopened paths: - ".github/workflows/release-snapshot.yml" workflow_dispatch: jobs: goreleaser: runs-on: ubuntu-latest steps: - name: Checkout repository and submodules uses: actions/checkout@v4 with: fetch-depth: 0 fetch-tags: true - name: Setup Go uses: actions/setup-go@v5 with: go-version: 1.23.2 # The default cache key for this action considers only the `go.sum` file. # We include .goreleaser.yaml here to differentiate from the cache used by the push action # that runs unit tests. This job produces and uses a different cache. cache-dependency-path: | go.sum .goreleaser.yaml - name: Hide snapshot tag to outsmart GoReleaser run: git tag -d snapshot || true - name: Run GoReleaser id: releaser uses: goreleaser/goreleaser-action@v6 with: version: ~> v2 args: release --snapshot --skip docker - name: Upload macOS binaries uses: actions/upload-artifact@v4 with: name: cli_darwin_snapshot path: | dist/*_darwin_*/ - name: Upload Linux binaries uses: actions/upload-artifact@v4 with: name: cli_linux_snapshot path: | dist/*_linux_*/ - name: Upload Windows binaries uses: actions/upload-artifact@v4 with: name: cli_windows_snapshot path: | dist/*_windows_*/ - name: Update snapshot tag # Snapshot release may only be updated for commits to the main branch. if: github.ref == 'refs/heads/main' run: | git tag snapshot git push origin snapshot --force - name: Update snapshot release # Snapshot release may only be updated for commits to the main branch. if: github.ref == 'refs/heads/main' uses: softprops/action-gh-release@v1 with: name: Snapshot prerelease: true tag_name: snapshot token: ${{ secrets.GITHUB_TOKEN }} files: | dist/databricks_cli_*.zip