Switch Linux toolcache to GitHub package registry (#316)

* Switch toolcache to GitHub package registry

* Add Execute in /tmp & show failure code

* Added boost 1.72 & tmp folder parameters

* Change "github_feed_token" to "null"
This commit is contained in:
Mihran
2020-01-29 11:26:47 +04:00
committed by GitHub
parent 548a28dc8d
commit 2b2aa98d56
5 changed files with 41 additions and 21 deletions

View File

@@ -10,12 +10,23 @@ source $HELPER_SCRIPTS/document.sh
# Fail out if any setups fail # Fail out if any setups fail
set -e set -e
TOOLCACHE_REGISTRY="npm.pkg.github.com"
AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
mkdir $AGENT_TOOLSDIRECTORY mkdir $AGENT_TOOLSDIRECTORY
echo "AGENT_TOOLSDIRECTORY=$AGENT_TOOLSDIRECTORY" | tee -a /etc/environment echo "AGENT_TOOLSDIRECTORY=$AGENT_TOOLSDIRECTORY" | tee -a /etc/environment
chmod -R 777 $AGENT_TOOLSDIRECTORY chmod -R 777 $AGENT_TOOLSDIRECTORY
echo "Configure npm to use github package registry for '@actions' scope"
npm config set @actions:registry "https://${TOOLCACHE_REGISTRY}"
# Execute in /imagegeneration/installers folder to avoid node_modules creation in $HOME
pushd $INSTALLER_SCRIPT_FOLDER
# GitHub Package Registry doesn't support downloading public packages without auth so we have to authorize
echo "Configure auth for github package registry"
echo "//${TOOLCACHE_REGISTRY}/:_authToken=${GITHUB_FEED_TOKEN}" > ".npmrc"
echo "Installing npm-toolcache..." echo "Installing npm-toolcache..."
TOOLSET_PATH="$INSTALLER_SCRIPT_FOLDER/toolcache.json" TOOLSET_PATH="$INSTALLER_SCRIPT_FOLDER/toolcache.json"
@@ -25,10 +36,19 @@ for PACKAGE_NAME in ${PACKAGE_LIST[@]}; do
PACKAGE_VERSIONS=($(jq -r ".[\"$PACKAGE_NAME\"] | .[]" $TOOLSET_PATH)) PACKAGE_VERSIONS=($(jq -r ".[\"$PACKAGE_NAME\"] | .[]" $TOOLSET_PATH))
for PACKAGE_VERSION in ${PACKAGE_VERSIONS[@]}; do for PACKAGE_VERSION in ${PACKAGE_VERSIONS[@]}; do
echo "Install ${PACKAGE_NAME}@${PACKAGE_VERSION}" echo "Install ${PACKAGE_NAME}@${PACKAGE_VERSION}"
npm install ${PACKAGE_NAME}@${PACKAGE_VERSION} --registry=${TOOLCACHE_REGISTRY} npm install ${PACKAGE_NAME}@${PACKAGE_VERSION}
exit_code=$?
if [ $exit_code -ne 0 ]; then
echo "${PACKAGE_NAME}@${PACKAGE_VERSION} installation failure; Error:${exit_code}"
exit 1
fi
done; done;
done; done;
popd
DocumentInstalledItem "Python:" DocumentInstalledItem "Python:"
pythons=$(ls $AGENT_TOOLSDIRECTORY/Python) pythons=$(ls $AGENT_TOOLSDIRECTORY/Python)
for python in $pythons; do for python in $pythons; do
@@ -45,4 +65,4 @@ DocumentInstalledItem "PyPy:"
pypys=$(ls $AGENT_TOOLSDIRECTORY/PyPy) pypys=$(ls $AGENT_TOOLSDIRECTORY/PyPy)
for pypy in $pypys; do for pypy in $pypys; do
DocumentInstalledItemIndent "PyPy $pypy" DocumentInstalledItemIndent "PyPy $pypy"
done; done;

View File

@@ -1,14 +1,14 @@
{ {
"toolcache-python-ubuntu-1604-x64": [ "@actions/toolcache-python-ubuntu-1604-x64": [
"2.7", "3.5", "3.6", "3.7", "3.8" "2.7", "3.5", "3.6", "3.7", "3.8"
], ],
"toolcache-ruby-ubuntu-1604-x64": [ "@actions/toolcache-ruby-ubuntu-1604-x64": [
"2.4", "2.5", "2.6", "2.7" "2.4", "2.5", "2.6", "2.7"
], ],
"toolcache-pypy-ubuntu-1604-x64": [ "@actions/toolcache-pypy-ubuntu-1604-x64": [
"2", "3" "2", "3"
], ],
"toolcache-boost-ubuntu-1604-x64": [ "@actions/toolcache-boost-ubuntu-1604-x64": [
"1.69" "1.69", "1.72"
] ]
} }

View File

@@ -1,14 +1,14 @@
{ {
"toolcache-python-ubuntu-1804-x64": [ "@actions/toolcache-python-ubuntu-1804-x64": [
"2.7", "3.5", "3.6", "3.7", "3.8" "2.7", "3.5", "3.6", "3.7", "3.8"
], ],
"toolcache-ruby-ubuntu-1804-x64": [ "@actions/toolcache-ruby-ubuntu-1804-x64": [
"2.4", "2.5", "2.6", "2.7" "2.4", "2.5", "2.6", "2.7"
], ],
"toolcache-pypy-ubuntu-1804-x64": [ "@actions/toolcache-pypy-ubuntu-1804-x64": [
"2", "3" "2", "3"
], ],
"toolcache-boost-ubuntu-1804-x64": [ "@actions/toolcache-boost-ubuntu-1804-x64": [
"1.69" "1.69", "1.72"
] ]
} }

View File

@@ -21,9 +21,9 @@
"vm_size": "Standard_DS2_v2", "vm_size": "Standard_DS2_v2",
"capture_name_prefix": "packer", "capture_name_prefix": "packer",
"image_version": "dev", "image_version": "dev",
"toolcache_registry": "https://buildcanary.pkgs.visualstudio.com/PipelineCanary/_packaging/hostedtoolcache/npm/registry/" "github_feed_token": null
}, },
"sensitive-variables": ["client_secret"], "sensitive-variables": ["client_secret", "github_feed_token"],
"builders": [ "builders": [
{ {
"type": "azure-arm", "type": "azure-arm",
@@ -187,8 +187,8 @@
"environment_vars": [ "environment_vars": [
"METADATA_FILE={{user `metadata_file`}}", "METADATA_FILE={{user `metadata_file`}}",
"HELPER_SCRIPTS={{user `helper_script_folder`}}", "HELPER_SCRIPTS={{user `helper_script_folder`}}",
"TOOLCACHE_REGISTRY={{user `toolcache_registry`}}", "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}" "GITHUB_FEED_TOKEN={{user `github_feed_token`}}"
], ],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
}, },

View File

@@ -21,9 +21,9 @@
"vm_size": "Standard_DS2_v2", "vm_size": "Standard_DS2_v2",
"capture_name_prefix": "packer", "capture_name_prefix": "packer",
"image_version": "dev", "image_version": "dev",
"toolcache_registry": "https://buildcanary.pkgs.visualstudio.com/PipelineCanary/_packaging/hostedtoolcache/npm/registry/" "github_feed_token": null
}, },
"sensitive-variables": ["client_secret"], "sensitive-variables": ["client_secret", "github_feed_token"],
"builders": [ "builders": [
{ {
"type": "azure-arm", "type": "azure-arm",
@@ -190,8 +190,8 @@
"environment_vars": [ "environment_vars": [
"METADATA_FILE={{user `metadata_file`}}", "METADATA_FILE={{user `metadata_file`}}",
"HELPER_SCRIPTS={{user `helper_script_folder`}}", "HELPER_SCRIPTS={{user `helper_script_folder`}}",
"TOOLCACHE_REGISTRY={{user `toolcache_registry`}}", "INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}",
"INSTALLER_SCRIPT_FOLDER={{user `installer_script_folder`}}" "GITHUB_FEED_TOKEN={{user `github_feed_token`}}"
], ],
"execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'" "execute_command": "sudo sh -c '{{ .Vars }} {{ .Path }}'"
}, },