diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 880a22f..aa3fbfe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,9 +39,6 @@ jobs: friendlyName: Linux targetPlatform: ubuntu image: 'ubuntu:20.04' - exclude: - - os: windows-latest - arch: arm64 timeout-minutes: 20 steps: - name: Install dependencies into dockerfile on Ubuntu diff --git a/dependencies.json b/dependencies.json index f0269a3..e4c51c1 100644 --- a/dependencies.json +++ b/dependencies.json @@ -1,36 +1,49 @@ { "git": { - "version": "v2.50.1", + "version": "v2.51.0", "packages": [ { "platform": "windows", "arch": "amd64", - "filename": "PortableGit-2.50.1-64-bit.7z.exe", - "url": "https://github.com/git-for-windows/git/releases/download/v2.50.1.windows.1/PortableGit-2.50.1-64-bit.7z.exe", - "checksum": "c45a7dfa2bde34059f6dbd85f49a95d73d5aea29305f51b79595e56e4f323a3d" + "filename": "PortableGit-2.51.0.2-64-bit.7z.exe", + "url": "https://github.com/git-for-windows/git/releases/download/v2.51.0.windows.2/PortableGit-2.51.0.2-64-bit.7z.exe", + "checksum": "85d6e9f865b73827e22d532fd6cd5b93987c8d264142786b0721956619d5c00e" + }, + { + "platform": "windows", + "arch": "arm64", + "filename": "PortableGit-2.51.0.2-arm64.7z.exe", + "url": "https://github.com/git-for-windows/git/releases/download/v2.51.0.windows.2/PortableGit-2.51.0.2-arm64.7z.exe", + "checksum": "f35e795224349c63b7d6c429c2d8404a6ce7e2e8f91934a3f6ba2ca8e7e285a8" } ] }, "git-lfs": { - "version": "v3.5.1", + "version": "v3.7.0", "files": [ { "platform": "linux", "arch": "amd64", - "name": "git-lfs-linux-amd64-v3.5.1.tar.gz", - "checksum": "6f28eb19faa7a968882dca190d92adc82493378b933958d67ceaeb9ebe4d731e" + "name": "git-lfs-linux-amd64-v3.7.0.tar.gz", + "checksum": "e7ebba491af8a54e560be3a00666fa97e4cf2bbbb223178a0934b8ef74cf9bed" }, { "platform": "linux", "arch": "arm64", - "name": "git-lfs-linux-arm64-v3.5.1.tar.gz", - "checksum": "4f8700aacaa0fd26ae5300fb0996aed14d1fd0ce1a63eb690629c132ff5163a9" + "name": "git-lfs-linux-arm64-v3.7.0.tar.gz", + "checksum": "88c24cb0c772cb6570e70f336ef4bb7b6539c5fb9ebeda563e9a5458ca82a98e" }, { "platform": "windows", "arch": "amd64", - "name": "git-lfs-windows-amd64-v3.5.1.zip", - "checksum": "94435072f6b3a6f9064b277760c8340e432b5ede0db8205d369468b9be52c6b6" + "name": "git-lfs-windows-amd64-v3.7.0.zip", + "checksum": "10be221ee5a76c6f4fc4d5b0c84d9b6f97b0db4815fb39a1b9579f04d37379ec" + }, + { + "platform": "windows", + "arch": "arm64", + "name": "git-lfs-windows-arm64-v3.7.0.zip", + "checksum": "ec56aef19f3bcd33a239046a82b81a9844db2f66294434c5c54a470aa28ee669" } ] } diff --git a/git b/git index d82adb6..c44beea 160000 --- a/git +++ b/git @@ -1 +1 @@ -Subproject commit d82adb61ba2fd11d8f2587fca1b6bd7925ce4044 +Subproject commit c44beea485f0f2feaf460e2ac87fdd5608d63cf0 diff --git a/script/build-win32.sh b/script/build-win32.sh index f81314e..2b7eaa1 100755 --- a/script/build-win32.sh +++ b/script/build-win32.sh @@ -10,13 +10,17 @@ if [[ -z "${DESTINATION}" ]]; then exit 1 fi -if [ "$TARGET_ARCH" = "x64" ]; then - DEPENDENCY_ARCH="amd64" - MINGW_DIR="mingw64" -else - echo "Unsupported architecture" - exit 1 -fi +case "$TARGET_ARCH" in + "x64") + DEPENDENCY_ARCH="amd64" + MINGW_DIR="mingw64";; + "arm64") + DEPENDENCY_ARCH="arm64" + MINGW_DIR="clangarm64";; + *) + echo "Unsupported architecture: $TARGET_ARCH" + exit 1 ;; +esac GIT_LFS_VERSION=$(jq --raw-output ".[\"git-lfs\"].version[1:]" dependencies.json) GIT_LFS_CHECKSUM="$(jq --raw-output ".\"git-lfs\".files[] | select(.arch == \"$DEPENDENCY_ARCH\" and .platform == \"windows\") | .checksum" dependencies.json)" @@ -45,23 +49,6 @@ fi unset COMPUTED_SHA256 -GAWK_URL="https://mirror.msys2.org/msys/x86_64/gawk-5.3.1-1-x86_64.pkg.tar.zst" -GAWK_FILENAME="gawk-5.3.1-1-x86_64.pkg.tar.zst" -GAWK_CHECKSUM="9ce65f18c696723278031d05d978b0eb0cb9ee2db2d1d8c2bd5603d050b09096" - -echo "-- Upgrading GAWK" -curl -sL -o "$GAWK_FILENAME" "$GAWK_URL" -COMPUTED_SHA256=$(compute_checksum "$GAWK_FILENAME") -if [ "$COMPUTED_SHA256" = "$GAWK_CHECKSUM" ]; then - echo "GAWK: checksums match" - tar -xvf "$GAWK_FILENAME" -C "$DESTINATION" --exclude="*.BUILDINFO" --exclude="*.MTREE" --exclude="*.PKGINFO" - rm "$GAWK_FILENAME" -else - echo "GAWK: expected checksum $GIT_FOR_WINDOWS_CHECKSUM but got $COMPUTED_SHA256" - echo "aborting..." - exit 1 -fi - echo "-- Deleting Unneccessary Files" cd "$DESTINATION" tr -d '\r' < "$CURRENT_DIR/windows-blacklist.txt" | xargs -d '\n' rm -rf diff --git a/script/update-git-lfs.ts b/script/update-git-lfs.ts index e7914e7..4ef5ed0 100644 --- a/script/update-git-lfs.ts +++ b/script/update-git-lfs.ts @@ -84,6 +84,7 @@ async function run(): Promise { `git-lfs-linux-amd64-${version}.tar.gz`, `git-lfs-linux-arm64-${version}.tar.gz`, `git-lfs-windows-amd64-${version}.zip`, + `git-lfs-windows-arm64-${version}.zip`, ] const newFiles = [] diff --git a/script/update-git.ts b/script/update-git.ts index ba17d99..756bc72 100644 --- a/script/update-git.ts +++ b/script/update-git.ts @@ -96,9 +96,13 @@ async function calculateAssetChecksum(uri: string) { async function getPackageDetails( assets: ReleaseAssets, body: string, - arch: string + arch: 'amd64' | 'arm64' ) { - const archValue = arch === 'amd64' ? '64-bit' : '32-bit' + const archValue = { + amd64: '64-bit', + arm64: 'arm64', + }[arch] + const portableGitFile = assets.find( a => a.name.indexOf('PortableGit') !== -1 && a.name.indexOf(archValue) !== -1 @@ -210,13 +214,14 @@ async function run() { return } - const package64bit = await getPackageDetails(assets, body, 'amd64') + const packageX64 = await getPackageDetails(assets, body, 'amd64') + const packageARM64 = await getPackageDetails(assets, body, 'arm64') - if (package64bit == null) { + if (packageX64 == null || packageARM64 == null) { return } - updateGitDependencies(latestGitVersion, [package64bit]) + updateGitDependencies(latestGitVersion, [packageX64, packageARM64]) console.log( `✅ Updated dependencies metadata to Git ${latestGitVersion} (Git for Windows ${version})`