This is an automated email from the ASF dual-hosted git repository.

kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new dc581f09f8 GH-45316: [Release][C#] Use GitHub Releases for artifacts 
(#45317)
dc581f09f8 is described below

commit dc581f09f8670ee44e15a801742d574ac93541d1
Author: Sutou Kouhei <[email protected]>
AuthorDate: Thu Jan 23 14:35:58 2025 +0900

    GH-45316: [Release][C#] Use GitHub Releases for artifacts (#45317)
    
    ### Rationale for this change
    
    We don't need to use Artifactory for NuGet packages because it's not
    published to Artifactory.
    
    ### What changes are included in this PR?
    
    * Use GitHub Releases for easy to maintain
    * Use `.github/workflows/csharp.yml` instead of nightly job for easy to
    maintain
    
    ### Are these changes tested?
    
    Almost yes.
    
    ### Are there any user-facing changes?
    
    No.
    * GitHub Issue: #45316
---
 .github/workflows/csharp.yml                       | 85 ++++++++++++++++++++++
 .github/workflows/release.yml                      | 22 +++---
 .github/workflows/release_candidate.yml            |  9 ++-
 .pre-commit-config.yaml                            |  1 +
 dev/release/02-source-test.rb                      | 19 +++--
 dev/release/02-source.sh                           | 76 ++++++++++---------
 dev/release/05-binary-upload.sh                    |  4 -
 dev/release/binary-task.rb                         | 11 ---
 dev/release/download_rc_binaries.py                |  2 +-
 dev/release/post-08-csharp.sh                      |  6 +-
 dev/release/utils-create-release-tarball.sh        |  4 +-
 .../utils-generate-checksum.sh}                    | 41 +++++------
 dev/release/utils-watch-gh-workflow.sh             | 37 ++++++----
 dev/tasks/tasks.yml                                | 22 ------
 14 files changed, 203 insertions(+), 136 deletions(-)

diff --git a/.github/workflows/csharp.yml b/.github/workflows/csharp.yml
index 0607c537d1..72ca0565eb 100644
--- a/.github/workflows/csharp.yml
+++ b/.github/workflows/csharp.yml
@@ -133,3 +133,88 @@ jobs:
       - name: Test
         shell: bash
         run: ci/scripts/csharp_test.sh $(pwd)
+
+  package:
+    name: Package
+    # Branch or RC tag
+    if: github.ref_type != 'tag' || contains(github.ref_name, 'rc')
+    runs-on: ubuntu-latest
+    timeout-minutes: 15
+    permissions:
+      contents: write
+    steps:
+      - name: Checkout for utilities
+        if: github.ref_type == 'tag'
+        uses: actions/checkout@v4
+        with:
+          path: arrow
+      - name: Download source archive
+        if: github.ref_type == 'tag'
+        run: |
+          arrow/dev/release/utils-watch-gh-workflow.sh \
+            ${GITHUB_REF_NAME} \
+            release_candidate.yml
+          gh release download ${GITHUB_REF_NAME} \
+            --pattern "*.tar.gz" \
+            --repo ${GITHUB_REPOSITORY}
+          tar -xf *.tar.gz --strip-components=1
+          mv csharp/dummy.git .git
+        env:
+          GH_TOKEN: ${{ github.token }}
+      - name: Checkout
+        if: github.ref_type != 'tag'
+        uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+      - name: Prepare version
+        if: github.ref_type != 'tag'
+        run: |
+          # apache-arrow-20.0.0.dev-9-g758867f907 ->
+          #              20.0.0.dev-9-g758867f907 ->
+          #              20.0.0.dev-9             ->
+          #              20.0.0-dev-9
+          semver="$(git describe --tags | \
+                     sed -E \
+                         -e 's/^apache-arrow-//' \
+                         -e 's/-[^-]*$//' \
+                         -e 's/^([0-9]*\.[0-9]*\.[0-9])\./\1-/')"
+          sed -i'' -E -e \
+            "s/^    <Version>.+<\/Version>/    <Version>${semver}<\/Version>/" 
\
+            csharp/Directory.Build.props
+      - name: Setup Python
+        uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # 
v5.3.0
+        with:
+          python-version: 3
+      - name: Setup Archery
+        run: |
+          python3 -m pip install -e 'dev/archery[docker]'
+      - name: Build
+        run: |
+          archery docker run ubuntu-csharp
+      - name: Prepare artifacts
+        run: |
+          shopt -s globstar
+          cp csharp/artifacts/**/*.{,s}nupkg ./
+          for artifact in *.{,s}nupkg; do
+            dev/release/utils-generate-checksum.sh "${artifact}"
+          done
+      - name: Upload
+        uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 
# v4.6.0
+        with:
+          name: nuget
+          path: |
+            *.nupkg
+            *.sha256
+            *.sha512
+            *.snupkg
+      - name: Publish
+        if: github.ref_type == 'tag'
+        run: |
+          gh release upload ${GITHUB_REF_NAME} \
+            --repo ${GITHUB_REPOSITORY} \
+            *.nupkg \
+            *.sha256 \
+            *.sha512 \
+            *.snupkg
+        env:
+          GH_TOKEN: ${{ github.token }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 8d54979502..655d67df69 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -32,13 +32,13 @@ env:
 
 jobs:
   publish:
-    name: Publish 
+    name: Publish
     runs-on: ubuntu-latest
     timeout-minutes: 5
     steps:
       - name: Get Tag Name of Latest Release Candidate
         run: |
-          rc_tag=$(gh release list --repo apache/arrow | \
+          rc_tag=$(gh release list --repo ${GITHUB_REPOSITORY} | \
                     cut -f3 | \
                     grep -F "${GITHUB_REF_NAME}-rc" | \
                     head -n1)
@@ -52,23 +52,25 @@ jobs:
           echo "VERSION_WITH_RC=${version_with_rc}" >> ${GITHUB_ENV}
           echo "VERSION=${version}" >> ${GITHUB_ENV}
           echo "RC_NUM=${rc_num}" >> ${GITHUB_ENV}
-      - name: Download Release Candidate Artifacts 
+      - name: Download Release Candidate Artifacts
         run: |
           mkdir release_candidate_artifacts
-          gh release download ${RELEASE_CANDIDATE_TAG_NAME} --repo 
apache/arrow --dir release_candidate_artifacts
+          gh release download ${RELEASE_CANDIDATE_TAG_NAME} \
+            --dir release_candidate_artifacts \
+            --repo ${GITHUB_REPOSITORY}
       - name: Create Release Title
         run: |
           title="Apache Arrow ${VERSION}"
           echo "RELEASE_TITLE=${title}" >> ${GITHUB_ENV}
       # Set the release notes to "TODO" temporarily. After the release notes 
page
-      # (https://arrow.apache.org/release/{VERSION}.html) is published, use 
-      # gh release edit to update the release notes to refer to the newly 
+      # (https://arrow.apache.org/release/{VERSION}.html) is published, use
+      # gh release edit to update the release notes to refer to the newly
       # pushed web page. See dev/post/post-05-update-gh-release-notes.sh
       - name: Create GitHub Release
         run: |
           gh release create ${GITHUB_REF_NAME} \
-            --repo apache/arrow \
-            --verify-tag \
-            --title "${RELEASE_TITLE}" \
             --notes "TODO" \
-            release_candidate_artifacts/*
\ No newline at end of file
+            --repo ${GITHUB_REPOSITORY} \
+            --title "${RELEASE_TITLE}" \
+            --verify-tag \
+            release_candidate_artifacts/*
diff --git a/.github/workflows/release_candidate.yml 
b/.github/workflows/release_candidate.yml
index ec732f0eb3..5e222be06a 100644
--- a/.github/workflows/release_candidate.yml
+++ b/.github/workflows/release_candidate.yml
@@ -32,10 +32,10 @@ env:
 
 jobs:
   publish:
-    name: Publish 
+    name: Publish
     runs-on: ubuntu-latest
     timeout-minutes: 5
-    steps: 
+    steps:
       - name: Checkout Arrow
         uses: actions/checkout@v4
         with:
@@ -58,8 +58,9 @@ jobs:
           echo "RELEASE_CANDIDATE_NOTES=${release_notes}" >> ${GITHUB_ENV}
       - name: Create Release tarball
         run: |
-          cd dev/release/ && ./utils-create-release-tarball.sh ${VERSION} 
${RC_NUM}
+          dev/release/utils-create-release-tarball.sh ${VERSION} ${RC_NUM}
           echo "RELEASE_TARBALL=apache-arrow-${VERSION}.tar.gz" >> 
${GITHUB_ENV}
+          dev/release/utils-generate-checksum.sh 
"apache-arrow-${VERSION}.tar.gz"
       - name: Create GitHub Release
         run: |
           gh release create ${GITHUB_REF_NAME} \
@@ -67,4 +68,4 @@ jobs:
             --prerelease \
             --title "${RELEASE_CANDIDATE_TITLE}" \
             --notes "Release Notes: ${RELEASE_CANDIDATE_NOTES}" \
-            dev/release/${RELEASE_TARBALL}
+            ${RELEASE_TARBALL}*
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index e54fe2393c..0ee2e233bb 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -183,4 +183,5 @@ repos:
           ?^ci/scripts/c_glib_build\.sh$|
           ?^ci/scripts/c_glib_test\.sh$|
           ?^c_glib/test/run-test\.sh$|
+          ?^dev/release/utils-generate-checksum\.sh$|
           )
diff --git a/dev/release/02-source-test.rb b/dev/release/02-source-test.rb
index 95c1a4f448..85b58ab206 100644
--- a/dev/release/02-source-test.rb
+++ b/dev/release/02-source-test.rb
@@ -143,13 +143,13 @@ This release candidate is based on commit:
 #{@current_commit} [2]
 
 The source release rc0 is hosted at [3].
-The binary artifacts are hosted at [4][5][6][7][8][9][10].
-The changelog is located at [11].
+The binary artifacts are hosted at [4][5][6][7][8][9].
+The changelog is located at [10].
 
 Please download, verify checksums and signatures, run the unit tests,
-and vote on the release. See [12] for how to validate a release candidate.
+and vote on the release. See [11] for how to validate a release candidate.
 
-See also a verification result on GitHub pull request [13].
+See also a verification result on GitHub pull request [12].
 
 The vote will be open for at least 72 hours.
 
@@ -164,12 +164,11 @@ The vote will be open for at least 72 hours.
 [5]: https://apache.jfrog.io/artifactory/arrow/amazon-linux-rc/
 [6]: https://apache.jfrog.io/artifactory/arrow/centos-rc/
 [7]: https://apache.jfrog.io/artifactory/arrow/debian-rc/
-[8]: https://apache.jfrog.io/artifactory/arrow/nuget-rc/#{@release_version}-rc0
-[9]: 
https://apache.jfrog.io/artifactory/arrow/python-rc/#{@release_version}-rc0
-[10]: https://apache.jfrog.io/artifactory/arrow/ubuntu-rc/
-[11]: https://github.com/apache/arrow/blob/#{@current_commit}/CHANGELOG.md
-[12]: https://arrow.apache.org/docs/developers/release_verification.html
-[13]: #{verify_pr_url || "null"}
+[8]: 
https://apache.jfrog.io/artifactory/arrow/python-rc/#{@release_version}-rc0
+[9]: https://apache.jfrog.io/artifactory/arrow/ubuntu-rc/
+[10]: https://github.com/apache/arrow/blob/#{@current_commit}/CHANGELOG.md
+[11]: https://arrow.apache.org/docs/developers/release_verification.html
+[12]: #{verify_pr_url || "null"}
     VOTE
   end
 end
diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh
index 94fa6a814a..b50aa94936 100755
--- a/dev/release/02-source.sh
+++ b/dev/release/02-source.sh
@@ -46,6 +46,7 @@ rc_url="https://dist.apache.org/repos/dist/dev/arrow/${tag}";
 echo "Preparing source for tag ${tag}"
 
 : ${release_hash:=$(cd "${SOURCE_TOP_DIR}" && git rev-list --max-count=1 
${tag})}
+: ${GITHUB_REPOSITORY:=apache/arrow}
 
 if [ ${SOURCE_UPLOAD} -gt 0 ]; then
   if [ -z "$release_hash" ]; then
@@ -62,35 +63,40 @@ if [ ${SOURCE_DOWNLOAD} -gt 0 ]; then
   # Wait for the release candidate workflow to finish before attempting
   # to download the tarball from the GitHub Release.
   . $SOURCE_DIR/utils-watch-gh-workflow.sh ${tag} "release_candidate.yml"
-  rm -f ${tarball}
-  gh release download \
-    ${tag} \
-    --repo apache/arrow \
-    --dir . \
-    --pattern "${tarball}"
+  . $SOURCE_DIR/utils-watch-gh-workflow.sh ${tag} "csharp.yml"
+  rm -rf artifacts
+  gh release download ${tag} \
+    --dir artifacts \
+    --repo "${GITHUB_REPOSITORY}"
 fi
 
 if [ ${SOURCE_RAT} -gt 0 ]; then
-  "${SOURCE_DIR}/run-rat.sh" ${tarball}
+  "${SOURCE_DIR}/run-rat.sh" artifacts/${tarball}
 fi
 
-if type shasum >/dev/null 2>&1; then
-  sha256_generate="shasum -a 256"
-  sha512_generate="shasum -a 512"
-else
-  sha256_generate="sha256sum"
-  sha512_generate="sha512sum"
-fi
-
-
 if [ ${SOURCE_UPLOAD} -gt 0 ]; then
-  # sign the archive
-  gpg --armor --output ${tarball}.asc --detach-sig ${tarball}
-  ${sha256_generate} $tarball > ${tarball}.sha256
-  ${sha512_generate} $tarball > ${tarball}.sha512
+  rm -rf signed-artifacts
+  mkdir -p signed-artifacts
+
+  # sign the artifacts
+  for artifact in artifacts/*; do
+    case "${artifact}" in
+      *.sha256|*.sha512)
+        continue
+        ;;
+    esac
+    gpg \
+      --armor \
+      --detach-sig \
+      --output signed-artifacts/$(basename ${artifact}).asc \
+      ${artifact}
+  done
 
   # Upload signed tarballs to GitHub Release
-  gh release upload --repo apache/arrow ${tag} ${tarball}.sha256 
${tarball}.sha512
+  gh release upload ${tag} \
+     --repo "${GITHUB_REPOSITORY}" \
+     --verify-tag \
+     signed-artifacts/*
 
   # check out the arrow RC folder
   svn co --depth=empty https://dist.apache.org/repos/dist/dev/arrow tmp
@@ -99,13 +105,16 @@ if [ ${SOURCE_UPLOAD} -gt 0 ]; then
   mkdir -p tmp/${tag}
 
   # copy the rc tarball into the tmp dir
-  cp ${tarball}* tmp/${tag}
+  cp artifacts/${tarball}* tmp/${tag}
+  cp signed-artifacts/${tarball}.asc tmp/${tag}
 
   # commit to svn
   svn add tmp/${tag}
   svn ci -m "Apache Arrow ${version} RC${rc}" tmp/${tag}
 
   # clean up
+  rm -rf artifacts
+  rm -rf signed-artifacts
   rm -rf tmp
 
   echo "Success! The release candidate is available here:"
@@ -124,7 +133,7 @@ if [ ${SOURCE_PR} -gt 0 ]; then
     --head-branch=${rc_branch} \
     --pr-body="PR to verify Release Candidate" \
     --pr-title="WIP: [Release] Verify ${rc_branch}" \
-    --remote=https://github.com/apache/arrow \
+    --remote=https://github.com/${GITHUB_REPOSITORY} \
     --rc=${rc} \
     --verify-source \
     --version=${version}
@@ -143,7 +152,7 @@ if [ ${SOURCE_VOTE} -gt 0 ]; then
   curl_options+=(--get)
   curl_options+=(--data "state=open")
   curl_options+=(--data "head=apache:${rc_branch}")
-  curl_options+=(https://api.github.com/repos/apache/arrow/pulls)
+  curl_options+=(https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls)
   verify_pr_url=$(curl "${curl_options[@]}" | jq -r ".[0].html_url")
   echo "The following draft email has been created to send to the"
   echo "[email protected] mailing list"
@@ -163,13 +172,13 @@ This release candidate is based on commit:
 ${release_hash} [2]
 
 The source release rc${rc} is hosted at [3].
-The binary artifacts are hosted at [4][5][6][7][8][9][10].
-The changelog is located at [11].
+The binary artifacts are hosted at [4][5][6][7][8][9].
+The changelog is located at [10].
 
 Please download, verify checksums and signatures, run the unit tests,
-and vote on the release. See [12] for how to validate a release candidate.
+and vote on the release. See [11] for how to validate a release candidate.
 
-See also a verification result on GitHub pull request [13].
+See also a verification result on GitHub pull request [12].
 
 The vote will be open for at least 72 hours.
 
@@ -184,12 +193,11 @@ The vote will be open for at least 72 hours.
 [5]: https://apache.jfrog.io/artifactory/arrow/amazon-linux-rc/
 [6]: https://apache.jfrog.io/artifactory/arrow/centos-rc/
 [7]: https://apache.jfrog.io/artifactory/arrow/debian-rc/
-[8]: https://apache.jfrog.io/artifactory/arrow/nuget-rc/${version}-rc${rc}
-[9]: https://apache.jfrog.io/artifactory/arrow/python-rc/${version}-rc${rc}
-[10]: https://apache.jfrog.io/artifactory/arrow/ubuntu-rc/
-[11]: https://github.com/apache/arrow/blob/${release_hash}/CHANGELOG.md
-[12]: https://arrow.apache.org/docs/developers/release_verification.html
-[13]: ${verify_pr_url}
+[8]: https://apache.jfrog.io/artifactory/arrow/python-rc/${version}-rc${rc}
+[9]: https://apache.jfrog.io/artifactory/arrow/ubuntu-rc/
+[10]: https://github.com/apache/arrow/blob/${release_hash}/CHANGELOG.md
+[11]: https://arrow.apache.org/docs/developers/release_verification.html
+[12]: ${verify_pr_url}
 MAIL
   echo "---------------------------------------------------------"
 fi
diff --git a/dev/release/05-binary-upload.sh b/dev/release/05-binary-upload.sh
index 3515883bfa..77244f558d 100755
--- a/dev/release/05-binary-upload.sh
+++ b/dev/release/05-binary-upload.sh
@@ -72,7 +72,6 @@ fi
 : ${UPLOAD_CENTOS:=${UPLOAD_DEFAULT}}
 : ${UPLOAD_DEBIAN:=${UPLOAD_DEFAULT}}
 : ${UPLOAD_DOCS:=${UPLOAD_DEFAULT}}
-: ${UPLOAD_NUGET:=${UPLOAD_DEFAULT}}
 : ${UPLOAD_PYTHON:=${UPLOAD_DEFAULT}}
 : ${UPLOAD_R:=${UPLOAD_DEFAULT}}
 : ${UPLOAD_UBUNTU:=${UPLOAD_DEFAULT}}
@@ -99,9 +98,6 @@ fi
 if [ ${UPLOAD_DOCS} -gt 0 ]; then
   rake_tasks+=(docs:rc)
 fi
-if [ ${UPLOAD_NUGET} -gt 0 ]; then
-  rake_tasks+=(nuget:rc)
-fi
 if [ ${UPLOAD_PYTHON} -gt 0 ]; then
   rake_tasks+=(python:rc)
 fi
diff --git a/dev/release/binary-task.rb b/dev/release/binary-task.rb
index 4387641741..0c07923348 100644
--- a/dev/release/binary-task.rb
+++ b/dev/release/binary-task.rb
@@ -803,7 +803,6 @@ class BinaryTask
     define_apt_tasks
     define_yum_tasks
     define_docs_tasks
-    define_nuget_tasks
     define_python_tasks
     define_r_tasks
     define_summary_tasks
@@ -1899,14 +1898,6 @@ APT::FTPArchive::Release::Description 
"#{apt_repository_description}";
                               "test-debian-12-docs/**/*")
   end
 
-  def define_nuget_tasks
-    define_generic_data_tasks("NuGet",
-                              :nuget,
-                              "#{rc_dir}/nuget/#{full_version}",
-                              "#{release_dir}/nuget/#{full_version}",
-                              "nuget/**/*")
-  end
-
   def define_python_tasks
     define_generic_data_tasks("Python",
                               :python,
@@ -1989,7 +1980,6 @@ Success! The release candidate binaries are available 
here:
   https://apache.jfrog.io/artifactory/arrow/centos#{suffix}-rc/
   https://apache.jfrog.io/artifactory/arrow/debian#{suffix}-rc/
   https://apache.jfrog.io/artifactory/arrow/docs#{suffix}-rc/
-  https://apache.jfrog.io/artifactory/arrow/nuget#{suffix}-rc/#{full_version}
   https://apache.jfrog.io/artifactory/arrow/python#{suffix}-rc/#{full_version}
   https://apache.jfrog.io/artifactory/arrow/r#{suffix}-rc/#{full_version}
   https://apache.jfrog.io/artifactory/arrow/ubuntu#{suffix}-rc/
@@ -2007,7 +1997,6 @@ Success! The release binaries are available here:
   https://apache.jfrog.io/artifactory/arrow/centos#{suffix}/
   https://apache.jfrog.io/artifactory/arrow/debian#{suffix}/
   https://apache.jfrog.io/artifactory/arrow/docs#{suffix}/
-  https://apache.jfrog.io/artifactory/arrow/nuget#{suffix}/#{version}
   https://apache.jfrog.io/artifactory/arrow/python#{suffix}/#{version}
   https://apache.jfrog.io/artifactory/arrow/r#{suffix}/#{version}
   https://apache.jfrog.io/artifactory/arrow/ubuntu#{suffix}/
diff --git a/dev/release/download_rc_binaries.py 
b/dev/release/download_rc_binaries.py
index 473f95ae37..23e33edaad 100755
--- a/dev/release/download_rc_binaries.py
+++ b/dev/release/download_rc_binaries.py
@@ -280,7 +280,7 @@ def download_rc_binaries(version, rc_number, re_match=None, 
dest=None,
         if package_type == 'jars':
             downloader = Maven()
             prefix = ''
-        elif package_type == 'github':
+        elif package_type == 'github' or package_type == 'nuget':
             downloader = GitHub(repository, tag)
             prefix = ''
             filter = None
diff --git a/dev/release/post-08-csharp.sh b/dev/release/post-08-csharp.sh
index 75bf2b963a..f0c71b860e 100755
--- a/dev/release/post-08-csharp.sh
+++ b/dev/release/post-08-csharp.sh
@@ -30,6 +30,8 @@ fi
 
 version=$1
 
+: "${GITHUB_REPOSITORY:=apache/arrow}"
+
 if [ -z "${NUGET_API_KEY}" ]; then
   echo "NUGET_API_KEY is empty"
   exit 1
@@ -41,7 +43,7 @@ base_names+=(Apache.Arrow.Flight.${version})
 base_names+=(Apache.Arrow.Flight.AspNetCore.${version})
 base_names+=(Apache.Arrow.Flight.Sql.${version})
 base_names+=(Apache.Arrow.Compression.${version})
-for base_name in ${base_names[@]}; do
+for base_name in "${base_names[@]}"; do
   for extension in nupkg snupkg; do
     path=${base_name}.${extension}
     rm -f ${path}
@@ -49,7 +51,7 @@ for base_name in ${base_names[@]}; do
       --fail \
       --location \
       --remote-name \
-      https://apache.jfrog.io/artifactory/arrow/nuget/${version}/${path}
+      
"https://github.com/${GITHUB_REPOSITORY}/releases/download/apache-arrow-${version}/${path}";
   done
   dotnet nuget push \
     ${base_name}.nupkg \
diff --git a/dev/release/utils-create-release-tarball.sh 
b/dev/release/utils-create-release-tarball.sh
index 0ca57ebe78..3891976762 100755
--- a/dev/release/utils-create-release-tarball.sh
+++ b/dev/release/utils-create-release-tarball.sh
@@ -54,9 +54,9 @@ dummy_git=${root_folder}/csharp/dummy.git
 mkdir ${dummy_git}
 pushd ${dummy_git}
 echo ${release_hash} > HEAD
-echo '[remote "origin"] url = https://github.com/apache/arrow.git' >> config
+echo "[remote \"origin\"] url = 
https://github.com/${GITHUB_REPOSITORY:-apache/arrow}.git"; >> config
 mkdir objects refs
-popd 
+popd
 
 # Create new tarball from modified source directory
 tar czf ${tarball} ${root_folder}
diff --git a/dev/tasks/nuget-packages/github.linux.yml 
b/dev/release/utils-generate-checksum.sh
old mode 100644
new mode 100755
similarity index 50%
rename from dev/tasks/nuget-packages/github.linux.yml
rename to dev/release/utils-generate-checksum.sh
index cd03a7bfee..300955e3f1
--- a/dev/tasks/nuget-packages/github.linux.yml
+++ b/dev/release/utils-generate-checksum.sh
@@ -1,3 +1,5 @@
+#!/usr/bin/env bash
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -15,29 +17,24 @@
 # specific language governing permissions and limitations
 # under the License.
 
-{% import 'macros.jinja' as macros with context %}
+set -e
+set -u
+set -o pipefail
 
-{{ macros.github_header() }}
+if [ "$#" -ne 1 ]; then
+  echo "Usage: $0 <artifact>"
+  exit 1
+fi
 
-jobs:
-  package:
-    name: Package
-    runs-on: ubuntu-latest
-    steps:
-      {{ macros.github_checkout_arrow()|indent }}
-      {{ macros.github_install_archery()|indent }}
+artifact="$1"
 
-      - name: Prepare version
-        run: |
-          sed -i'' -E -e \
-            "s/^    <Version>.+<\/Version>/    <Version>{{ 
arrow.no_rc_semver_version }}<\/Version>/" \
-            arrow/csharp/Directory.Build.props
-      - name: Build package
-        run: |
-          pushd arrow
-          archery docker run {{ run }}
-          popd
+if type shasum >/dev/null 2>&1; then
+  sha256_generate="shasum -a 256"
+  sha512_generate="shasum -a 512"
+else
+  sha256_generate="sha256sum"
+  sha512_generate="sha512sum"
+fi
 
-      {% set patterns = ["arrow/csharp/artifacts/**/*.nupkg",
-                         "arrow/csharp/artifacts/**/*.snupkg"] %}
-      {{ macros.github_upload_releases(patterns)|indent }}
+${sha256_generate} "${artifact}" > "${artifact}.sha256"
+${sha512_generate} "${artifact}" > "${artifact}.sha512"
diff --git a/dev/release/utils-watch-gh-workflow.sh 
b/dev/release/utils-watch-gh-workflow.sh
index c0bab40df0..163f30251f 100755
--- a/dev/release/utils-watch-gh-workflow.sh
+++ b/dev/release/utils-watch-gh-workflow.sh
@@ -18,29 +18,38 @@
 # under the License.
 
 set -e
+set -u
 set -o pipefail
 
 if [ "$#" -ne 2 ]; then
-    echo "Usage: $0 <tag> <workflow>"
-    exit 1
+  echo "Usage: $0 <tag> <workflow>"
+  exit 1
 fi
 
 TAG=$1
 WORKFLOW=$2
-REPOSITORY="apache/arrow"
+: "${REPOSITORY:=${GITHUB_REPOSITORY:-apache/arrow}}"
 
 echo "Looking for GitHub Actions workflow on ${REPOSITORY}:${TAG}"
 RUN_ID=""
-while [[ -z "${RUN_ID}" ]]
-do
-    echo "Waiting for run to start..."
-    RUN_ID=$(gh run list \
-                --repo "${REPOSITORY}" \
-                --workflow="${WORKFLOW}" \
-                --json 'databaseId,event,headBranch,status' \
-                --jq ".[] | select(.event == \"push\" and .headBranch == 
\"${TAG}\") | .databaseId")
-      sleep 1
-  done
+while true; do
+  echo "Waiting for run to start..."
+  RUN_ID=$(gh run list \
+              --branch "${TAG}" \
+              --jq '.[].databaseId' \
+              --json databaseId \
+              --limit 1 \
+              --repo "${REPOSITORY}" \
+              --workflow "${WORKFLOW}")
+  if [ -n "${RUN_ID}" ]; then
+    break
+  fi
+  sleep 60
+done
 
 echo "Found GitHub Actions workflow with ID: ${RUN_ID}"
-gh run watch --repo "${REPOSITORY}" --exit-status ${RUN_ID}
\ No newline at end of file
+gh run watch \
+   --exit-status \
+   --interval 60 \
+   --repo "${REPOSITORY}" \
+   ${RUN_ID}
diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml
index 14bd83c90e..72d22b5522 100644
--- a/dev/tasks/tasks.yml
+++ b/dev/tasks/tasks.yml
@@ -60,7 +60,6 @@ groups:
     - conan-*
     - debian-*
     - matlab
-    - nuget
     - python-sdist
     - r-binary-packages
     - ubuntu-*
@@ -153,7 +152,6 @@ groups:
     - conan-*
     - conda-*
     - homebrew-cpp
-    - nuget
     - test-*
     - example-*
     - wheel-*
@@ -184,7 +182,6 @@ groups:
     - ~conda-osx-arm64-cpu-py3
     - conan-*
     - homebrew-cpp
-    - nuget
     - wheel-*
     - python-sdist
     - r-binary-packages
@@ -689,25 +686,6 @@ tasks:
     artifacts:
       - matlab-arrow-{no_rc_no_dev_version}.mltbx
 
-  ############################## NuGet packages ###############################
-
-  nuget:
-    ci: github
-    template: nuget-packages/github.linux.yml
-    params:
-      run: ubuntu-csharp
-    artifacts:
-      - Apache.Arrow.Compression.{no_rc_version}.nupkg
-      - Apache.Arrow.Compression.{no_rc_version}.snupkg
-      - Apache.Arrow.Flight.AspNetCore.{no_rc_version}.nupkg
-      - Apache.Arrow.Flight.AspNetCore.{no_rc_version}.snupkg
-      - Apache.Arrow.Flight.Sql.{no_rc_version}.nupkg
-      - Apache.Arrow.Flight.Sql.{no_rc_version}.snupkg
-      - Apache.Arrow.Flight.{no_rc_version}.nupkg
-      - Apache.Arrow.Flight.{no_rc_version}.snupkg
-      - Apache.Arrow.{no_rc_version}.nupkg
-      - Apache.Arrow.{no_rc_version}.snupkg
-
   ######################## R packages & binaries ##############################
   r-binary-packages:
     ci: github

Reply via email to