diff --git a/.github/scripts/update_nix.sh b/.github/scripts/update_nix.sh new file mode 100755 index 00000000..87dd7b13 --- /dev/null +++ b/.github/scripts/update_nix.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# edit version in package.nix +sed -i "s/version = \".*\"/version = \"$VERSION\"/" package.nix + +#x86 linux +RELEASE_LINK="https://github.com/glide-browser/glide/releases/download/$VERSION/glide.linux-x86_64.tar.xz" +NEW_HASH=$(nix hash to-sri --type sha256 $(nix-prefetch-url "$RELEASE_LINK")) +SANITIZE_HASH=$(sed -e 's/[&\\/]/\\&/g; s/$/\\/' -e '$s/\\$//' <<<"$NEW_HASH") +sed -zi "s/sha256 = \".*\"/sha256 = \"${SANITIZE_HASH}\"/1m" package.nix + +#aarch64 linux +RELEASE_LINK="https://github.com/glide-browser/glide/releases/download/$VERSION/glide.linux-aarch64.tar.xz" +NEW_HASH=$(nix hash to-sri --type sha256 $(nix-prefetch-url "$RELEASE_LINK")) +SANITIZE_HASH=$(sed -e 's/[&\\/]/\\&/g; s/$/\\/' -e '$s/\\$//' <<<"$NEW_HASH") +sed -zi "s/sha256 = \".*\"/sha256 = \"${SANITIZE_HASH}\"/2m" package.nix + +#x86 macos +RELEASE_LINK="https://github.com/glide-browser/glide/releases/download/$VERSION/glide.macos-x86_64.dmg" +NEW_HASH=$(nix hash to-sri --type sha256 $(nix-prefetch-url "$RELEASE_LINK")) +SANITIZE_HASH=$(sed -e 's/[&\\/]/\\&/g; s/$/\\/' -e '$s/\\$//' <<<"$NEW_HASH") +sed -zi "s/sha256 = \".*\"/sha256 = \"${SANITIZE_HASH}\"/3m" package.nix + +#aarch64 macos +RELEASE_LINK="https://github.com/glide-browser/glide/releases/download/$VERSION/glide.macos-aarch64.dmg" +NEW_HASH=$(nix hash to-sri --type sha256 $(nix-prefetch-url "$RELEASE_LINK")) +SANITIZE_HASH=$(sed -e 's/[&\\/]/\\&/g; s/$/\\/' -e '$s/\\$//' <<<"$NEW_HASH") +sed -zi "s/sha256 = \".*\"/sha256 = \"${SANITIZE_HASH}\"/4m" package.nix + +if [ -z "$GITHUB_OUTPUT" ]; then + echo $(cat package.nix) >>$GITHUB_OUTPUT +else + cat package.nix +fi diff --git a/.github/workflows/post-release.yml b/.github/workflows/post-release.yml index f603e1d7..beed1830 100644 --- a/.github/workflows/post-release.yml +++ b/.github/workflows/post-release.yml @@ -26,3 +26,60 @@ jobs: git checkout -b docs-production origin/docs-production git reset --hard origin/main git push --force-with-lease + update-nix: + name: Update glide nix flake + runs-on: ubuntu-latest + + steps: + - name: install nix + uses: DeterminateSystems/determinate-nix-action@1d699fc25db3f9e079cd2f168ca007a4183389be # or v3.15.1 to pin to a release + + - name: clone glide.nix repo + uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 + with: + token: ${{ secrets.REPO_ACCESS_TOKEN }} + persist-credentials: true + repository : "glide-browser/glide.nix" + + - name: update hashes + env: + VERSION: ${{ inputs.tag_name github.event.release.tag_name }} + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git switch -c "update-$VERSION" + .github/scripts/update_nix.sh + # edit version in package.nix + sed -i 's/version = ".*"/version = "$VERSION"/' package.nix + + #x86 linux + RELEASE_LINK="https://github.com/glide-browser/glide/releases/download/$VERSION/glide.linux-x86_64.tar.xz" + NEW_HASH=$(nix hash to-sri --type sha256 $(nix-prefetch-url "$RELEASE_LINK")) + sed -zi 's/sha256 = ".*"/sha256 = "$NEW_HASH"/1m' package.nix + + #aarch64 linux + RELEASE_LINK="https://github.com/glide-browser/glide/releases/download/$VERSION/glide.linux-aarch64.tar.xz" + NEW_HASH=$(nix hash to-sri --type sha256 $(nix-prefetch-url "$RELEASE_LINK")) + sed -zi 's/sha256 = ".*"/sha256 = "$NEW_HASH"/2m' package.nix + + #x86 macos + RELEASE_LINK="https://github.com/glide-browser/glide/releases/download/$VERSION/glide.macos-x86_64.dmg" + NEW_HASH=$(nix hash to-sri --type sha256 $(nix-prefetch-url "$RELEASE_LINK")) + sed -zi 's/sha256 = ".*"/sha256 = "$NEW_HASH"/3m' package.nix + + #aarch64 macos + RELEASE_LINK="https://github.com/glide-browser/glide/releases/download/$VERSION/glide.macos-aarch64.dmg" + NEW_HASH=$(nix hash to-sri --type sha256 $(nix-prefetch-url "$RELEASE_LINK")) + sed -zi 's/sha256 = ".*"/sha256 = "$NEW_HASH"/4m' package.nix + + + # modification done + git add package.nix + git commit -m "update: v$VERSION" + + # make pull request + gh -R "glide-browser/glide.nix" pr create --title "update to version $VERSION" --body "" --head "$update-$VERSION" + + # auto-merge + gh -R "glide-browser/glide.nix" pr merge "update-$VERSION" --auto --rebase + #TODO: check if this works +