Merge pull request #305579 from kylecarbs/master

coder: add support for mainline channel
This commit is contained in:
Pol Dellaiera 2024-04-20 18:51:22 +02:00 committed by GitHub
commit fca59efa1e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 58 additions and 23 deletions

View File

@ -1,4 +1,5 @@
{ lib
, channel ? "stable"
, fetchurl
, installShellFiles
, makeBinaryWrapper
@ -9,18 +10,33 @@
let
inherit (stdenvNoCC.hostPlatform) system;
channels = {
stable = {
version = "2.9.3";
hash = {
x86_64-linux = "sha256-6VS21x2egWBV6eJqRCBGG7mEGPIDFtY9GN6Ry4ilC70=";
x86_64-darwin = "sha256-UBUGjA+jUkT6p9714l8IvDDI/qhWNctVFOvcA2S5kQU=";
aarch64-linux = "sha256-2QAahqcM2gi3lT+18q2Nm9GNqVsqzX3RajBsTn+KB1c=";
aarch64-darwin = "sha256-uEH7Y7c9BcU/Q/jwx/inFMvUrgm2dUruID+FJL+rA6Y=";
};
};
mainline = {
version = "2.10.1";
hash = {
x86_64-linux = "sha256-jNPL30e5xvyajlIqivtEpSb3cRhfgFhLFlC+CaLY2IM=";
x86_64-darwin = "sha256-U1eQaYwnm/mdQoZ8YxK/+s3HboVfMIAtdI7aQnCiDM8=";
aarch64-linux = "sha256-YtSyKZYG8vdubZUfo2FjEoVwSF82TXzeLJjPpHqgFDk=";
aarch64-darwin = "sha256-aQSiXK7voP5/mPFIscfTnSc4Ae5/f+WW8MR6ZtuC/eY=";
};
};
};
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "coder";
version = "2.9.1";
version = channels.${channel}.version;
src = fetchurl {
hash = {
x86_64-linux = "sha256-r4+u/s/dOn2GhyhEROu8i03QY3VA/bIyO/Yj7KSqicY=";
x86_64-darwin = "sha256-uShCmMvb5OcinqP0CmrlP9QAJkjfG3g1QuHE4JRDOjE=";
aarch64-linux = "sha256-tvpzfJ95YYfCY5V4iayjAmY5PDw+1uHUhY5F3pv/2Uk=";
aarch64-darwin = "sha256-sP9HnB2DzAU9IvL3+QPmIFLvRkGkoxSoa68uXGQrNkw=";
}.${system};
hash = (channels.${channel}.hash).${system};
url =
let

View File

@ -5,12 +5,13 @@ set -eu -o pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
LATEST_TAG=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} --silent https://api.github.com/repos/coder/coder/releases/latest | jq -r '.tag_name')
LATEST_VERSION=$(echo ${LATEST_TAG} | sed 's/^v//')
# Fetch the latest stable version
LATEST_STABLE_TAG=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} --silent https://api.github.com/repos/coder/coder/releases/latest | jq -r '.tag_name')
LATEST_STABLE_VERSION=$(echo ${LATEST_STABLE_TAG} | sed 's/^v//')
# change version number
sed -e "s/version =.*;/version = \"$LATEST_VERSION\";/g" \
-i ./default.nix
# Fetch the latest mainline version
LATEST_MAINLINE_TAG=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} --silent https://api.github.com/repos/coder/coder/releases | jq -r '.[0].tag_name')
LATEST_MAINLINE_VERSION=$(echo ${LATEST_MAINLINE_TAG} | sed 's/^v//')
# Define the platforms
declare -A ARCHS=(["x86_64-linux"]="linux_amd64.tar.gz"
@ -18,15 +19,33 @@ declare -A ARCHS=(["x86_64-linux"]="linux_amd64.tar.gz"
["x86_64-darwin"]="darwin_amd64.zip"
["aarch64-darwin"]="darwin_arm64.zip")
# Update hashes for each architecture
for ARCH in "${!ARCHS[@]}"; do
URL="https://github.com/coder/coder/releases/download/v${LATEST_VERSION}/coder_${LATEST_VERSION}_${ARCHS[$ARCH]}"
echo "Fetching hash for $ARCH..."
update_version_and_hashes() {
local version=$1
local channel=$2
# Fetch the new hash using nix-prefetch-url
NEW_HASH=$(nix-prefetch-url --type sha256 $URL)
SRI_HASH=$(nix hash to-sri --type sha256 $NEW_HASH)
# Update version number, using '#' as delimiter
sed -i "/${channel} = {/,/};/{
s#^\(\s*\)version = .*#\1version = \"$version\";#
}" ./default.nix
# Update the Nix file with the new hash
sed -i "s|${ARCH} = \"sha256-.*\";|${ARCH} = \"${SRI_HASH}\";|" ./default.nix
done
# Update hashes for each architecture
for ARCH in "${!ARCHS[@]}"; do
local URL="https://github.com/coder/coder/releases/download/v${version}/coder_${version}_${ARCHS[$ARCH]}"
echo "Fetching hash for $channel/$ARCH..."
# Fetch the new hash using nix-prefetch-url
local NEW_HASH=$(nix-prefetch-url --type sha256 $URL)
local SRI_HASH=$(nix hash to-sri --type sha256 $NEW_HASH)
# Update the Nix file with the new hash, using '#' as delimiter and preserving indentation
sed -i "/${channel} = {/,/};/{
s#^\(\s*\)${ARCH} = .*#\1${ARCH} = \"${SRI_HASH}\";#
}" ./default.nix
done
}
# Update stable channel
update_version_and_hashes $LATEST_STABLE_VERSION "stable"
# Update mainline channel
update_version_and_hashes $LATEST_MAINLINE_VERSION "mainline"