[macOS] cache most used GitHub actions

* Download actions/action_versions latest release on macOS and set ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE.

* Feedback.
This commit is contained in:
Tingluo Huang
2023-10-12 04:54:39 -04:00
committed by GitHub
parent c7517abd08
commit d77bb13e97
8 changed files with 43 additions and 0 deletions

View File

@@ -12,6 +12,7 @@ export NUNIT3_PATH=/Library/Developer/nunit/3.6.0
export AGENT_TOOLSDIRECTORY=$HOME/hostedtoolcache
export RUNNER_TOOL_CACHE=$HOME/hostedtoolcache
export ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE=$HOME/actionarchivecache
export PATH=/Library/Frameworks/Mono.framework/Versions/Current/Commands:$PATH
export PATH=/Library/Frameworks/Python.framework/Versions/Current/bin:$PATH

View File

@@ -0,0 +1,22 @@
#!/bin/bash -e -o pipefail
################################################################################
## File: action-archive-cache.sh
## Desc: Download latest release from https://github.com/actions/action-verions
## and un-tar to $HOME/actionarchivecache
## Maintainer: #actions-runtime and @TingluoHuang
################################################################################
source ~/utils/utils.sh
echo "Check if ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE folder exist..."
if [ ! -d $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE ]; then
mkdir -p $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE
fi
downloadUrl=$(get_github_package_download_url "actions/action-versions" "contains(\"action-versions.tar.gz\")" "latest")
echo "Downloading action-versions $downloadUrl"
download_with_retries "$downloadUrl" "/tmp" action-versions.tar.gz
tar -xzf /tmp/action-versions.tar.gz -C $ACTIONS_RUNNER_ACTION_ARCHIVE_CACHE
invoke_tests "ActionArchiveCache"

View File

@@ -183,6 +183,7 @@
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./provision/core/action-archive-cache.sh",
"./provision/core/commonutils.sh",
"./provision/core/llvm.sh",
"./provision/core/golang.sh",

View File

@@ -198,6 +198,7 @@ build {
}
provisioner "shell" {
scripts = [
"./provision/core/action-archive-cache.sh",
"./provision/core/llvm.sh",
"./provision/core/golang.sh",
"./provision/core/swiftlint.sh",

View File

@@ -185,6 +185,7 @@
"type": "shell",
"execute_command": "chmod +x {{ .Path }}; {{ .Vars }} {{ .Path }}",
"scripts": [
"./provision/core/action-archive-cache.sh",
"./provision/core/llvm.sh",
"./provision/core/golang.sh",
"./provision/core/swiftlint.sh",

View File

@@ -194,6 +194,7 @@ build {
}
provisioner "shell" {
scripts = [
"./provision/core/action-archive-cache.sh",
"./provision/core/llvm.sh",
"./provision/core/swiftlint.sh",
"./provision/core/openjdk.sh",

View File

@@ -194,6 +194,7 @@ build {
}
provisioner "shell" {
scripts = [
"./provision/core/action-archive-cache.sh",
"./provision/core/llvm.sh",
"./provision/core/openjdk.sh",
"./provision/core/rust.sh",

View File

@@ -0,0 +1,15 @@
Describe "ActionArchiveCache" {
Context "Action archive cache directory not empty" {
It "$HOME/actionarchivecache not empty" {
(Get-ChildItem -Path "$env:HOME/actionarchivecache/*.tar.gz" -Recurse).Count | Should -BeGreaterThan 0
}
}
Context "Action tarball not empty" {
$testCases = Get-ChildItem -Path "$env:HOME/actionarchivecache/*.tar.gz" -Recurse | ForEach-Object { @{ ActionTarball = $_.FullName } }
It "<ActionTarball>" -TestCases $testCases {
param ([string] $ActionTarball)
(Get-Item "$ActionTarball").Length | Should -BeGreaterThan 0
}
}
}