mirror of
https://github.com/XRPLF/clio.git
synced 2026-04-29 15:37:53 +00:00
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7.0.0 to 8.0.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/download-artifact/releases">actions/download-artifact's releases</a>.</em></p> <blockquote> <h2>v8.0.0</h2> <h2>v8 - What's new</h2> <h3>Direct downloads</h3> <p>To support direct uploads in <code>actions/upload-artifact</code>, the action will no longer attempt to unzip all downloaded files. Instead, the action checks the <code>Content-Type</code> header ahead of unzipping and skips non-zipped files. Callers wishing to download a zipped file as-is can also set the new <code>skip-decompress</code> parameter to <code>false</code>.</p> <h3>Enforced checks (breaking)</h3> <p>A previous release introduced digest checks on the download. If a download hash didn't match the expected hash from the server, the action would log a warning. Callers can now configure the behavior on mismatch with the <code>digest-mismatch</code> parameter. To be secure by default, we are now defaulting the behavior to <code>error</code> which will fail the workflow run.</p> <h3>ESM</h3> <p>To support new versions of the @actions/* packages, we've upgraded the package to ESM.</p> <h2>What's Changed</h2> <ul> <li>Don't attempt to un-zip non-zipped downloads by <a href="https://github.com/danwkennedy"><code>@danwkennedy</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/460">actions/download-artifact#460</a></li> <li>Add a setting to specify what to do on hash mismatch and default it to <code>error</code> by <a href="https://github.com/danwkennedy"><code>@danwkennedy</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/461">actions/download-artifact#461</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/download-artifact/compare/v7...v8.0.0">https://github.com/actions/download-artifact/compare/v7...v8.0.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="70fc10c6e5"><code>70fc10c</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/461">#461</a> from actions/danwkennedy/digest-mismatch-behavior</li> <li><a href="f258da9a50"><code>f258da9</code></a> Add change docs</li> <li><a href="ccc058e5fb"><code>ccc058e</code></a> Fix linting issues</li> <li><a href="bd7976ba57"><code>bd7976b</code></a> Add a setting to specify what to do on hash mismatch and default it to <code>error</code></li> <li><a href="ac21fcf45e"><code>ac21fcf</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/460">#460</a> from actions/danwkennedy/download-no-unzip</li> <li><a href="15999bff51"><code>15999bf</code></a> Add note about package bumps</li> <li><a href="974686ed50"><code>974686e</code></a> Bump the version to <code>v8</code> and add release notes</li> <li><a href="fbe48b1d27"><code>fbe48b1</code></a> Update test names to make it clearer what they do</li> <li><a href="96bf374a61"><code>96bf374</code></a> One more test fix</li> <li><a href="b8c4819ef5"><code>b8c4819</code></a> Fix skip decompress test</li> <li>Additional commits viewable in <a href="37930b1c2a...70fc10c6e5">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
151 lines
4.5 KiB
YAML
151 lines
4.5 KiB
YAML
name: Reusable test
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
runs_on:
|
|
description: Runner to run the job on
|
|
required: true
|
|
type: string
|
|
|
|
container:
|
|
description: "The container object as a JSON string (leave empty to run natively)"
|
|
required: true
|
|
type: string
|
|
|
|
conan_profile:
|
|
description: Conan profile to use
|
|
required: true
|
|
type: string
|
|
|
|
build_type:
|
|
description: Build type
|
|
required: true
|
|
type: string
|
|
|
|
run_unit_tests:
|
|
description: Whether to run unit tests
|
|
required: true
|
|
type: boolean
|
|
|
|
run_integration_tests:
|
|
description: Whether to run integration tests
|
|
required: true
|
|
type: boolean
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
jobs:
|
|
unit_tests:
|
|
name: Unit testing
|
|
runs-on: ${{ inputs.runs_on }}
|
|
container: ${{ inputs.container != '' && fromJson(inputs.container) || null }}
|
|
|
|
if: ${{ inputs.run_unit_tests }}
|
|
|
|
steps:
|
|
- name: Cleanup workspace
|
|
if: ${{ runner.os == 'macOS' }}
|
|
uses: XRPLF/actions/cleanup-workspace@c7d9ce5ebb03c752a354889ecd870cadfc2b1cd4
|
|
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
|
|
with:
|
|
name: clio_tests_${{ runner.os }}_${{ inputs.build_type }}_${{ inputs.conan_profile }}
|
|
|
|
- name: Make clio_tests executable
|
|
run: chmod +x ./clio_tests
|
|
|
|
- name: Run clio_tests
|
|
continue-on-error: true
|
|
id: run_clio_tests
|
|
run: ./clio_tests
|
|
|
|
- name: Create an issue
|
|
if: ${{ steps.run_clio_tests.outcome == 'failure' && endsWith(inputs.conan_profile, 'san') }}
|
|
uses: ./.github/actions/create-issue
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
with:
|
|
labels: "bug"
|
|
title: "[${{ inputs.conan_profile }}] reported issues"
|
|
body: >
|
|
Clio tests failed one or more sanitizer checks when built with `${{ inputs.conan_profile }}`.
|
|
|
|
Workflow: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}/
|
|
|
|
- name: Fail the job if clio_tests failed
|
|
if: ${{ steps.run_clio_tests.outcome == 'failure' }}
|
|
run: exit 1
|
|
|
|
integration_tests:
|
|
name: Integration testing
|
|
runs-on: ${{ inputs.runs_on }}
|
|
container: ${{ inputs.container != '' && fromJson(inputs.container) || null }}
|
|
|
|
if: ${{ inputs.run_integration_tests }}
|
|
|
|
services:
|
|
scylladb:
|
|
image: ${{ inputs.container != '' && 'scylladb/scylla' || '' }}
|
|
options: >-
|
|
--health-cmd "cqlsh -e 'describe cluster'"
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
|
|
steps:
|
|
- name: Cleanup workspace
|
|
if: ${{ runner.os == 'macOS' }}
|
|
uses: XRPLF/actions/cleanup-workspace@c7d9ce5ebb03c752a354889ecd870cadfc2b1cd4
|
|
|
|
- name: Delete and start colima (macOS)
|
|
# This is a temporary workaround for colima issues on macOS runners
|
|
if: ${{ runner.os == 'macOS' }}
|
|
run: |
|
|
colima delete --force
|
|
colima start
|
|
|
|
- name: Spin up scylladb (macOS)
|
|
if: ${{ runner.os == 'macOS' }}
|
|
timeout-minutes: 1
|
|
run: |
|
|
docker run \
|
|
--detach \
|
|
--name scylladb \
|
|
--health-cmd "cqlsh -e 'describe cluster'" \
|
|
--health-interval 10s \
|
|
--health-timeout 5s \
|
|
--health-retries 5 \
|
|
--publish 9042:9042 \
|
|
--memory 16G \
|
|
scylladb/scylla
|
|
|
|
- name: Wait for scylladb container to be healthy (macOS)
|
|
if: ${{ runner.os == 'macOS' }}
|
|
timeout-minutes: 1
|
|
run: |
|
|
until [ "$(docker inspect -f '{{.State.Health.Status}}' scylladb)" == "healthy" ]; do
|
|
sleep 1
|
|
done
|
|
|
|
- uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
|
|
with:
|
|
name: clio_integration_tests_${{ runner.os }}_${{ inputs.build_type }}_${{ inputs.conan_profile }}
|
|
|
|
- name: Run clio_integration_tests
|
|
run: |
|
|
chmod +x ./clio_integration_tests
|
|
./clio_integration_tests ${{ runner.os != 'macOS' && '--backend_host=scylladb' || '' }}
|
|
|
|
- name: Show docker logs and stop scylladb
|
|
if: ${{ always() && runner.os == 'macOS' }}
|
|
run: |
|
|
docker logs scylladb
|
|
docker rm --force scylladb || true
|