summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2024-09-17 12:31:46 +0100
committerGitHub <noreply@github.com>2024-09-17 13:31:46 +0200
commit039e15fc84465fd2595d4fc74bf817a44ba371ec (patch)
tree09305762f744ecb0218d93b8765ca37e84c46236 /.github
parentaaf2bf4bfbf90bed0b6e9812f337f057d1d24f93 (diff)
ci: make canary uploads less racy (#25671)
Closes https://github.com/denoland/deno/issues/25464 Only uploads canary git hash if the one in the bucket is present in the current action Git history.
Diffstat (limited to '.github')
-rwxr-xr-x.github/workflows/ci.generate.ts16
-rw-r--r--.github/workflows/ci.yml16
2 files changed, 24 insertions, 8 deletions
diff --git a/.github/workflows/ci.generate.ts b/.github/workflows/ci.generate.ts
index 8cc57619b..608bb3048 100755
--- a/.github/workflows/ci.generate.ts
+++ b/.github/workflows/ci.generate.ts
@@ -813,8 +813,12 @@ const ci = {
].join("\n"),
run: [
'gsutil -h "Cache-Control: public, max-age=3600" cp ./target/release/*.zip gs://dl.deno.land/canary/$(git rev-parse HEAD)/',
- "echo ${{ github.sha }} > canary-latest.txt",
- 'gsutil -h "Cache-Control: no-cache" cp canary-latest.txt gs://dl.deno.land/canary-$(rustc -vV | sed -n "s|host: ||p")-latest.txt',
+ 'lastest_canary_hash=$(gsutil cat gs://dl.deno.land/canary-$(rustc -vV | sed -n "s|host: ||p")-latest.txt)',
+ "git cat-file -e $(lastest_canary_hash)",
+ "if [ $? -eq 0 ]; then",
+ " echo ${{ github.sha }} > canary-latest.txt",
+ ' gsutil -h "Cache-Control: no-cache" cp canary-latest.txt gs://dl.deno.land/canary-$(rustc -vV | sed -n "s|host: ||p")-latest.txt',
+ "fi",
].join("\n"),
},
{
@@ -1092,8 +1096,12 @@ const ci = {
{
name: "Upload canary version file to dl.deno.land",
run: [
- "echo ${{ github.sha }} > canary-latest.txt",
- 'gsutil -h "Cache-Control: no-cache" cp canary-latest.txt gs://dl.deno.land/canary-latest.txt',
+ "lastest_canary_hash=$(gsutil cat gs://dl.deno.land/canary-latest.txt) && \\",
+ "git cat-file -e $(lastest_canary_hash)",
+ "if [ $? -eq 0]; then",
+ " echo ${{ github.sha }} > canary-latest.txt && \\",
+ ' gsutil -h "Cache-Control: no-cache" cp canary-latest.txt gs://dl.deno.land/canary-latest.txt',
+ "fi",
].join("\n"),
},
],
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1a10f4063..e9f7bff07 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -486,8 +486,12 @@ jobs:
github.ref == 'refs/heads/main')
run: |-
gsutil -h "Cache-Control: public, max-age=3600" cp ./target/release/*.zip gs://dl.deno.land/canary/$(git rev-parse HEAD)/
- echo ${{ github.sha }} > canary-latest.txt
- gsutil -h "Cache-Control: no-cache" cp canary-latest.txt gs://dl.deno.land/canary-$(rustc -vV | sed -n "s|host: ||p")-latest.txt
+ lastest_canary_hash=$(gsutil cat gs://dl.deno.land/canary-$(rustc -vV | sed -n "s|host: ||p")-latest.txt)
+ git cat-file -e $(lastest_canary_hash)
+ if [ $? -eq 0 ]; then
+ echo ${{ github.sha }} > canary-latest.txt
+ gsutil -h "Cache-Control: no-cache" cp canary-latest.txt gs://dl.deno.land/canary-$(rustc -vV | sed -n "s|host: ||p")-latest.txt
+ fi
- name: Autobahn testsuite
if: |-
!(matrix.skip) && ((matrix.os == 'linux' && matrix.arch != 'aarch64') &&
@@ -690,5 +694,9 @@ jobs:
project_id: denoland
- name: Upload canary version file to dl.deno.land
run: |-
- echo ${{ github.sha }} > canary-latest.txt
- gsutil -h "Cache-Control: no-cache" cp canary-latest.txt gs://dl.deno.land/canary-latest.txt
+ lastest_canary_hash=$(gsutil cat gs://dl.deno.land/canary-latest.txt) && \
+ git cat-file -e $(lastest_canary_hash)
+ if [ $? -eq 0]; then
+ echo ${{ github.sha }} > canary-latest.txt && \
+ gsutil -h "Cache-Control: no-cache" cp canary-latest.txt gs://dl.deno.land/canary-latest.txt
+ fi