Based on insights gained from reviewing conventions in #9815 with @jtmcg, I'm renaming this testscript to keep consistent with `gpg-key`, `label`, `ssh-key`, etc.
69 lines
1.6 KiB
Text
69 lines
1.6 KiB
Text
# Skip if Bash is not available given script extension
|
|
[!exec:bash] skip
|
|
|
|
# Setup environment variables used for testscript
|
|
env EXT_NAME=${SCRIPT_NAME}-${RANDOM_STRING}
|
|
env EXT_SCRIPT=gh-${EXT_NAME}
|
|
env REPO=gh-${EXT_NAME}
|
|
|
|
# Use gh as a credential helper
|
|
exec gh auth setup-git
|
|
|
|
# Create local repository for extension
|
|
exec gh extension create $EXT_NAME
|
|
cd $REPO
|
|
|
|
# Setup v1 executable baseline for extension
|
|
mv ../v1.sh $EXT_SCRIPT
|
|
chmod 777 $EXT_SCRIPT
|
|
exec git add $EXT_SCRIPT
|
|
exec git commit -m 'Setup extension as v1'
|
|
|
|
# Upload local extension repository
|
|
exec gh repo create $ORG/$REPO --private --source . --push
|
|
|
|
# Defer repo cleanup
|
|
defer gh repo delete --yes $ORG/$REPO
|
|
|
|
# Verify extension shows up in search, sleep for indexing
|
|
exec gh repo edit --add-topic gh-extension
|
|
sleep 10
|
|
exec gh extension search --owner $ORG $EXT_NAME
|
|
stdout ${ORG}/${REPO}
|
|
|
|
# Verify repository can be installed as extension
|
|
exec gh extension install $ORG/$REPO
|
|
exec gh extension list
|
|
stdout ${ORG}/${REPO}
|
|
|
|
# Verify v1 extension behavior before upgrade
|
|
exec gh extension exec $EXT_NAME
|
|
stdout 'gh ext create v1'
|
|
|
|
# Setup v2 executable upgrade for extension
|
|
mv ../v2.sh $EXT_SCRIPT
|
|
chmod 777 $EXT_SCRIPT
|
|
exec git add $EXT_SCRIPT
|
|
exec git commit -m 'Upgrade extension to v2'
|
|
exec git push -u origin
|
|
|
|
# Verify v2 extension upgrade
|
|
exec gh extension upgrade $EXT_NAME
|
|
exec gh extension exec $EXT_NAME
|
|
stdout 'gh ext upgrade v2'
|
|
|
|
# Verify extension can be removed
|
|
exec gh extension remove $EXT_NAME
|
|
! stdout ${ORG}/${REPO}
|
|
|
|
-- v1.sh --
|
|
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
echo "gh ext create v1"
|
|
|
|
-- v2.sh --
|
|
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
echo "gh ext upgrade v2"
|