From f2e7b988e7ba4bbbf671bca073dc3452f9698d78 Mon Sep 17 00:00:00 2001 From: Ryo Yamashita Date: Mon, 17 Feb 2025 01:19:48 +0900 Subject: [PATCH 1/7] =?UTF-8?q?ci:=20`Check=20release=20target=20tuples`?= =?UTF-8?q?=E3=83=AF=E3=83=BC=E3=82=AF=E3=83=95=E3=83=AD=E3=83=BC=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflows/check-release-target-tuples.yml | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .github/workflows/check-release-target-tuples.yml diff --git a/.github/workflows/check-release-target-tuples.yml b/.github/workflows/check-release-target-tuples.yml new file mode 100644 index 000000000..720a5d34a --- /dev/null +++ b/.github/workflows/check-release-target-tuples.yml @@ -0,0 +1,41 @@ +# deny.tomlの`graph.targets`がbuild and deploy workflowのものと一致しているかを検査する。 +name: Check release target tuples + +on: + push: + branches: + - main + pull_request: + paths: + - .github/workflows/check-release-target-tuples.yml + - .github/workflows/build_and_deploy.yml + - deny.toml + +jobs: + check: + runs-on: ubuntu-24.04 + steps: + - name: Install go-yq v4 + run: | + mkdir -p ~/.local/bin + echo ~/.local/bin >> "$GITHUB_PATH" + tag=$( + gh release ls -R mikefarah/yq --json tagName,isPrerelease \ + -q 'map(select(.isPrerelease | not).tagName | select(test("^v4\\.")))[0]' + ) + gh release download -R mikefarah/yq "$tag" -p yq_linux_amd64 -O ~/.local/bin/yq + chmod u+x ~/.local/bin/yq + ~/.local/bin/yq -V + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Checkout + uses: actions/checkout@v4 + + - name: Check release target tuples + run: | + targets=$(yq -ro json '.jobs.config.steps[] | select(.id == "strategy_matrix").run' ./.github/workflows/build_and_deploy.yml) + targets=$(sed -n 's/^ \+"target": \(".*"\),$/\1/p' <<< "$targets") + targets=$(jq -sr sort[] <<< "$targets") + + diff -u <(cat <<< "$targets") <(yq -ro json '.graph.targets | map(.triple) | sort[]' ./deny.toml) From 2dce338a6dbcfedbdaf66bd7c046c526c3c53bf3 Mon Sep 17 00:00:00 2001 From: Ryo Yamashita Date: Sun, 9 Mar 2025 11:20:31 +0900 Subject: [PATCH 2/7] [skip ci] `ubuntu-latest` Refs: https://github.com/VOICEVOX/voicevox_core/pull/1012#discussion_r1986141831 --- .github/workflows/check-release-target-tuples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-release-target-tuples.yml b/.github/workflows/check-release-target-tuples.yml index 720a5d34a..26023fe06 100644 --- a/.github/workflows/check-release-target-tuples.yml +++ b/.github/workflows/check-release-target-tuples.yml @@ -13,7 +13,7 @@ on: jobs: check: - runs-on: ubuntu-24.04 + runs-on: ubuntu-latest steps: - name: Install go-yq v4 run: | From 71a445574b111b27a3ded1c26f232ebb771e5471 Mon Sep 17 00:00:00 2001 From: Ryo Yamashita Date: Sun, 9 Mar 2025 11:23:00 +0900 Subject: [PATCH 3/7] =?UTF-8?q?[skip=20ci]=20yq=E3=81=AFapt=E3=81=8B?= =?UTF-8?q?=E3=82=89=E5=85=A5=E3=82=8C=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs: https://github.com/VOICEVOX/voicevox_core/pull/1012#discussion_r1986142719 Co-authored-by: Hiroshiba --- .../workflows/check-release-target-tuples.yml | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/.github/workflows/check-release-target-tuples.yml b/.github/workflows/check-release-target-tuples.yml index 26023fe06..5f47f709e 100644 --- a/.github/workflows/check-release-target-tuples.yml +++ b/.github/workflows/check-release-target-tuples.yml @@ -15,19 +15,11 @@ jobs: check: runs-on: ubuntu-latest steps: - - name: Install go-yq v4 + - name: Install yq run: | - mkdir -p ~/.local/bin - echo ~/.local/bin >> "$GITHUB_PATH" - tag=$( - gh release ls -R mikefarah/yq --json tagName,isPrerelease \ - -q 'map(select(.isPrerelease | not).tagName | select(test("^v4\\.")))[0]' - ) - gh release download -R mikefarah/yq "$tag" -p yq_linux_amd64 -O ~/.local/bin/yq - chmod u+x ~/.local/bin/yq - ~/.local/bin/yq -V - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + add-apt-repository ppa:rmescandon/yq + apt update + apt install yq -y - name: Checkout uses: actions/checkout@v4 From f9e91661de4b0af918fbe3e03ba3e00230c16416 Mon Sep 17 00:00:00 2001 From: Ryo Yamashita Date: Sun, 9 Mar 2025 11:24:15 +0900 Subject: [PATCH 4/7] `[ -z "$targets" ]` Refs: https://github.com/VOICEVOX/voicevox_core/pull/1012#discussion_r1986144181 --- .github/workflows/check-release-target-tuples.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check-release-target-tuples.yml b/.github/workflows/check-release-target-tuples.yml index 5f47f709e..2a58d3a8a 100644 --- a/.github/workflows/check-release-target-tuples.yml +++ b/.github/workflows/check-release-target-tuples.yml @@ -29,5 +29,6 @@ jobs: targets=$(yq -ro json '.jobs.config.steps[] | select(.id == "strategy_matrix").run' ./.github/workflows/build_and_deploy.yml) targets=$(sed -n 's/^ \+"target": \(".*"\),$/\1/p' <<< "$targets") targets=$(jq -sr sort[] <<< "$targets") + [ -z "$targets" ] diff -u <(cat <<< "$targets") <(yq -ro json '.graph.targets | map(.triple) | sort[]' ./deny.toml) From f07c025c2405b6a6703fa43f591d5a7a3432ddb8 Mon Sep 17 00:00:00 2001 From: Ryo Yamashita Date: Sun, 9 Mar 2025 11:28:07 +0900 Subject: [PATCH 5/7] =?UTF-8?q?apt=E3=81=ABsudo=E3=82=92=E4=BB=98=E3=81=91?= =?UTF-8?q?=E3=80=81=E3=81=BE=E3=81=9F`apt`=E3=81=A7=E3=81=AF=E3=81=AA?= =?UTF-8?q?=E3=81=8F`apt-get`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/check-release-target-tuples.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check-release-target-tuples.yml b/.github/workflows/check-release-target-tuples.yml index 2a58d3a8a..a8b506c37 100644 --- a/.github/workflows/check-release-target-tuples.yml +++ b/.github/workflows/check-release-target-tuples.yml @@ -17,9 +17,9 @@ jobs: steps: - name: Install yq run: | - add-apt-repository ppa:rmescandon/yq - apt update - apt install yq -y + sudo add-apt-repository ppa:rmescandon/yq + sudo apt-get update + sudo apt-get install yq -y - name: Checkout uses: actions/checkout@v4 From ee707b8c6be471783d7a003a2b6b71784413810a Mon Sep 17 00:00:00 2001 From: Ryo Yamashita Date: Sun, 9 Mar 2025 18:15:07 +0900 Subject: [PATCH 6/7] =?UTF-8?q?Revert=20"apt=E3=81=ABsudo=E3=82=92?= =?UTF-8?q?=E4=BB=98=E3=81=91=E3=80=81=E3=81=BE=E3=81=9F`apt`=E3=81=A7?= =?UTF-8?q?=E3=81=AF=E3=81=AA=E3=81=8F`apt-get`"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit f07c025c2405b6a6703fa43f591d5a7a3432ddb8. --- .github/workflows/check-release-target-tuples.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check-release-target-tuples.yml b/.github/workflows/check-release-target-tuples.yml index a8b506c37..2a58d3a8a 100644 --- a/.github/workflows/check-release-target-tuples.yml +++ b/.github/workflows/check-release-target-tuples.yml @@ -17,9 +17,9 @@ jobs: steps: - name: Install yq run: | - sudo add-apt-repository ppa:rmescandon/yq - sudo apt-get update - sudo apt-get install yq -y + add-apt-repository ppa:rmescandon/yq + apt update + apt install yq -y - name: Checkout uses: actions/checkout@v4 From 15823d9891dbda673ca46bfe39b624051b2e5785 Mon Sep 17 00:00:00 2001 From: Ryo Yamashita Date: Sun, 9 Mar 2025 18:15:13 +0900 Subject: [PATCH 7/7] =?UTF-8?q?Revert=20"[skip=20ci]=20yq=E3=81=AFapt?= =?UTF-8?q?=E3=81=8B=E3=82=89=E5=85=A5=E3=82=8C=E3=82=8B=0D"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 71a445574b111b27a3ded1c26f232ebb771e5471. --- .../workflows/check-release-target-tuples.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/.github/workflows/check-release-target-tuples.yml b/.github/workflows/check-release-target-tuples.yml index 2a58d3a8a..c65fe58ae 100644 --- a/.github/workflows/check-release-target-tuples.yml +++ b/.github/workflows/check-release-target-tuples.yml @@ -15,11 +15,19 @@ jobs: check: runs-on: ubuntu-latest steps: - - name: Install yq + - name: Install go-yq v4 run: | - add-apt-repository ppa:rmescandon/yq - apt update - apt install yq -y + mkdir -p ~/.local/bin + echo ~/.local/bin >> "$GITHUB_PATH" + tag=$( + gh release ls -R mikefarah/yq --json tagName,isPrerelease \ + -q 'map(select(.isPrerelease | not).tagName | select(test("^v4\\.")))[0]' + ) + gh release download -R mikefarah/yq "$tag" -p yq_linux_amd64 -O ~/.local/bin/yq + chmod u+x ~/.local/bin/yq + ~/.local/bin/yq -V + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Checkout uses: actions/checkout@v4