From 07a074f2f791475e7fbdfceb4152e1fba3ed33df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Qui=C3=B1ones?= Date: Tue, 31 Dec 2024 15:09:28 -0500 Subject: [PATCH] ci: partial integration with new script to fetch new versions --- .github/check-update.sh | 33 ++++++++++++++++++++++++ .github/new-version.sh | 18 ------------- .github/update-zen-browser.bash | 43 -------------------------------- new.sh => .github/update.sh | 2 +- .github/workflows/zen-update.yml | 18 ++++++------- 5 files changed, 43 insertions(+), 71 deletions(-) create mode 100755 .github/check-update.sh delete mode 100755 .github/new-version.sh delete mode 100755 .github/update-zen-browser.bash rename new.sh => .github/update.sh (95%) mode change 100644 => 100755 diff --git a/.github/check-update.sh b/.github/check-update.sh new file mode 100755 index 0000000..065edb4 --- /dev/null +++ b/.github/check-update.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +repo_tags=$(curl 'https://api.github.com/repos/zen-browser/desktop/tags' -s) + +twilight_tag=$(echo "$repo_tags" | jq -r '.[]|select(.name|test("twilight"))') +beta_tag=$(echo "$repo_tags" | jq -r '(map(select(.name | test("-b.")))) | first') + +check_update() { + name=$1 + arch=$2 + target_tag_meta=$3 + + meta=$(jq ".[\"$name\"][\"$arch-linux\"]" >"$GITHUB_OUTPUT" + return + fi +} + +set -e + +check_update "beta" "x86_64" "$beta_tag" +check_update "beta" "aarch64" "$beta_tag" +check_update "twilight" "x86_64" "$twilight_tag" +check_update "twilight" "aarch64" "$twilight_tag" diff --git a/.github/new-version.sh b/.github/new-version.sh deleted file mode 100755 index 73edc65..0000000 --- a/.github/new-version.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -echo "Fetching upstream version from GitHub API..." >&2 -upstream_data=$(curl -s https://api.github.com/repos/zen-browser/desktop/releases/latest) -echo "Upstream data: $upstream_data" >&2 - -upstream=$(echo "$upstream_data" | tr -d '\000-\037\177' | jq -r '.tag_name') -echo "Upstream version is: $upstream" >&2 - -local=$(grep -oP 'beta_version = "\K[^"]+' flake.nix) -echo "Current version (local) is: $local" >&2 # first! - -if [ "$upstream" != "$local" ]; then - echo "new_version=true" >>"$GITHUB_OUTPUT" - echo "upstream=$upstream" >>"$GITHUB_OUTPUT" -fi - -echo "$upstream" diff --git a/.github/update-zen-browser.bash b/.github/update-zen-browser.bash deleted file mode 100755 index 80d85ca..0000000 --- a/.github/update-zen-browser.bash +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash - -script_dir="$(dirname -- "$0")" - -upstream="null" - -max_attempts=10 -attempts=1 - -while [ "$upstream" == "null" ]; do - upstream=$("$script_dir/new-version.sh") - - if [ "$upstream" != "null" ]; then - break - elif [ $attempts -ge $max_attempts ]; then - echo "Unable to determine new upstream version" - exit 1 - fi - - echo "[attempt #${attempts}] Unable to determine new upstream version, retrying in 5 seconds..." - attempts=$((attempts + 1)) - sleep 5 -done - -upstream=$("$script_dir/new-version.sh" | cat -) -if [ "$upstream" == "null" ]; then - echo "Unable to determine new upstream version" - return 1 -fi - -echo "Updating to $upstream" - -base_url="https://github.com/zen-browser/desktop/releases/download/$upstream" - -# Modify with sed the nix file -sed -i "s/beta_version = \".*\"/beta_version = \"$upstream\"/" ./flake.nix - -# Update the hash sha256 -hash=$(nix-prefetch-url --type sha256 --unpack "$base_url/zen.linux-x86_64.tar.bz2") -sed -i "s/beta_hash = \".*\"/beta_hash = \"$hash\"/" ./flake.nix - -nix flake update -nix build .#beta diff --git a/new.sh b/.github/update.sh old mode 100644 new mode 100755 similarity index 95% rename from new.sh rename to .github/update.sh index 5853627..c2dd0e1 --- a/new.sh +++ b/.github/update.sh @@ -31,7 +31,7 @@ try_to_update() { jq ".[\"$name\"][\"$arch-linux\"] = {\"name\":\"$name\",\"version\":\"$version\",\"sha1\":\"$remote_sha1\",\"url\":\"$download_url\",\"sha256\":\"$sha256\"}" sources.json.tmp mv sources.json.tmp sources.json - echo "$name was updated to $version" + echo "$name was updated to $version" # missing nix build! fi } diff --git a/.github/workflows/zen-update.yml b/.github/workflows/zen-update.yml index 9e0aac7..c7985e1 100644 --- a/.github/workflows/zen-update.yml +++ b/.github/workflows/zen-update.yml @@ -13,28 +13,28 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Check new version - id: new-version + - name: Check if update is needed + id: check run: | - .github/new-version.sh + .github/check-update.sh - name: Install Nix - if: steps.new-version.outputs.new_version == 'true' + if: steps.check.outputs.should_update == 'true' uses: cachix/install-nix-action@v27 with: nix_path: nixpkgs=channel:nixpkgs-unstable - name: Setup Nix Magic Cache - if: steps.new-version.outputs.new_version == 'true' + if: steps.check.outputs.should_update == 'true' uses: DeterminateSystems/magic-nix-cache-action@main - - name: Update hashes and test build - if: steps.new-version.outputs.new_version == 'true' + - name: Update versions + if: steps.check.outputs.should_update == 'true' run: | - .github/update-zen-browser.bash + .github/update.sh - name: Commit changes - if: steps.new-version.outputs.new_version == 'true' + if: steps.check.outputs.should_update == 'true' uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: "Update Zen Browser to v${{ steps.new-version.outputs.upstream }}"