|
26 | 26 | runs-on: ubuntu-latest |
27 | 27 | outputs: |
28 | 28 | test_configs: ${{ steps.tests.outputs.test_configs }} |
29 | | - has_docker_tests: ${{ steps.tests.outputs.has_docker_tests }} |
| 29 | + kurtosis_versions: ${{ steps.tests.outputs.kurtosis_versions }} |
30 | 30 | steps: |
31 | 31 | - name: Checkout Repository |
32 | 32 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 |
@@ -70,23 +70,37 @@ jobs: |
70 | 70 | test_configs="$(echo "$test_configs" | jq -c "(.[]).kurtosis_branch = \"$override_kurtosis_branch\"")" |
71 | 71 | fi |
72 | 72 |
|
73 | | - has_docker_tests="false" |
74 | | - if [ $(echo "$test_configs" | jq -c ".[] | select(.backend == \"docker\")" | wc -l) -gt 0 ]; then |
75 | | - has_docker_tests="true" |
| 73 | + kurtosis_versions="$(echo "$test_configs" | jq -c "[.[] | select(.backend == \"docker\") | .kurtosis_version // \"latest\"] | unique")" |
| 74 | + if [ $(echo "$kurtosis_versions" | jq -c ".[] | select(. == \"latest\")" | wc -l) -gt 0 ]; then |
| 75 | + # get latest kurtosis version |
| 76 | + echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list |
| 77 | + sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/kurtosis.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" |
| 78 | + latest_kurtosis_version=$(apt show kurtosis-cli | grep Version | awk '{print $2}') |
| 79 | +
|
| 80 | + test_configs=$(echo "$test_configs" | jq -c --arg latest_kurtosis_version "$latest_kurtosis_version" \ |
| 81 | + 'map(if ((.kurtosis_version == "latest") or (.kurtosis_version == null)) and .backend == "docker" then .kurtosis_version = $latest_kurtosis_version else . end)') |
| 82 | + kurtosis_versions=$(echo "$kurtosis_versions" | jq -c ". + [\"$latest_kurtosis_version\"] | [.[] | select(. != \"latest\")] | unique") |
76 | 83 | fi |
77 | 84 |
|
78 | 85 | echo "test_configs<<EOF" >> $GITHUB_OUTPUT |
79 | 86 | echo "$test_configs" >> $GITHUB_OUTPUT |
80 | 87 | echo "$(echo "$test_configs" | jq)" |
81 | 88 | echo "EOF" >> $GITHUB_OUTPUT |
82 | 89 |
|
83 | | - echo "has_docker_tests=$has_docker_tests" >> $GITHUB_OUTPUT |
| 90 | + echo "kurtosis_versions<<EOF" >> $GITHUB_OUTPUT |
| 91 | + echo "$kurtosis_versions" >> $GITHUB_OUTPUT |
| 92 | + echo "EOF" >> $GITHUB_OUTPUT |
84 | 93 |
|
85 | 94 | prepare_cache: |
86 | 95 | needs: get_tests |
87 | | - if: "${{ needs.get_tests.outputs.has_docker_tests == 'true' }}" |
| 96 | + name: "Warmup docker cache" |
88 | 97 | uses: ./.github/workflows/_shared-prepare-docker-cache.yaml |
89 | | - name: "Prepare docker cache" |
| 98 | + strategy: |
| 99 | + fail-fast: false |
| 100 | + matrix: |
| 101 | + version: ${{ fromJson(needs.get_tests.outputs.kurtosis_versions) }} |
| 102 | + with: |
| 103 | + kurtosis_version: ${{ matrix.version }} |
90 | 104 |
|
91 | 105 | run_tests: |
92 | 106 | needs: [get_tests, prepare_cache] |
|
99 | 113 | with: |
100 | 114 | config: ${{ toJSON(matrix.config) }} |
101 | 115 | use_chatgpt: '{"url": "${{ vars.CHATGPT_URL }}", "model": "${{ vars.CHATGPT_MODEL }}", "extra_cfg": ${{ vars.CHATGPT_EXTRA_CFG }}}' |
102 | | - kurtosis_version: ${{ needs.prepare_cache.outputs.kurtosis_version }} |
103 | 116 | secrets: |
104 | 117 | RANCHER_URL: ${{ secrets.RANCHER_URL }} |
105 | 118 | RANCHER_TOKEN: ${{ secrets.RANCHER_TOKEN }} |
|
0 commit comments