Use upload artifact v4 (#6807)

unique-ify name

psh, who needs loops

Folder management

Extracts into current path

Co-authored-by: Alan Rominger <arominge@redhat.com>
This commit is contained in:
Peter Braun 2025-02-03 16:10:55 +01:00 committed by GitHub
parent 99b67f1e37
commit 18ea5cc561
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 31 additions and 21 deletions

View File

@ -13,7 +13,7 @@ runs:
docker logs tools_awx_1 > ${{ inputs.log-filename }} docker logs tools_awx_1 > ${{ inputs.log-filename }}
- name: Upload AWX logs as artifact - name: Upload AWX logs as artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: docker-compose-logs name: docker-compose-logs-${{ inputs.log-filename }}
path: ${{ inputs.log-filename }} path: ${{ inputs.log-filename }}

View File

@ -128,7 +128,7 @@ jobs:
- name: Upload debug output - name: Upload debug output
if: failure() if: failure()
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: awx-operator-debug-output name: awx-operator-debug-output
path: ${{ env.DEBUG_OUTPUT_DIR }} path: ${{ env.DEBUG_OUTPUT_DIR }}
@ -227,7 +227,7 @@ jobs:
ANSIBLE_TEST_PREFER_PODMAN: 1 ANSIBLE_TEST_PREFER_PODMAN: 1
# Upload coverage report as artifact # Upload coverage report as artifact
- uses: actions/upload-artifact@v3 - uses: actions/upload-artifact@v4
if: always() if: always()
with: with:
name: coverage-${{ matrix.target-regex.name }} name: coverage-${{ matrix.target-regex.name }}
@ -258,19 +258,29 @@ jobs:
- name: Upgrade ansible-core - name: Upgrade ansible-core
run: python3 -m pip install --upgrade ansible-core run: python3 -m pip install --upgrade ansible-core
- name: Download coverage artifacts - name: Download coverage artifacts A to H
uses: actions/download-artifact@v3 uses: actions/download-artifact@v4
with: with:
name: coverage-a-h
path: coverage
- name: Download coverage artifacts I to P
uses: actions/download-artifact@v4
with:
name: coverage-i-p
path: coverage
- name: Download coverage artifacts Z to Z
uses: actions/download-artifact@v4
with:
name: coverage-r-z0-9
path: coverage path: coverage
- name: Combine coverage - name: Combine coverage
run: | run: |
make COLLECTION_VERSION=100.100.100-git install_collection make COLLECTION_VERSION=100.100.100-git install_collection
mkdir -p ~/.ansible/collections/ansible_collections/awx/awx/tests/output/coverage mkdir -p ~/.ansible/collections/ansible_collections/awx/awx/tests/output/coverage
cd coverage cp -rv coverage/* ~/.ansible/collections/ansible_collections/awx/awx/tests/output/coverage/
for i in coverage-*; do
cp -rv $i/* ~/.ansible/collections/ansible_collections/awx/awx/tests/output/coverage/
done
cd ~/.ansible/collections/ansible_collections/awx/awx cd ~/.ansible/collections/ansible_collections/awx/awx
ansible-test coverage combine --requirements ansible-test coverage combine --requirements
ansible-test coverage html ansible-test coverage html
@ -323,7 +333,7 @@ jobs:
done done
- name: Upload coverage report as artifact - name: Upload coverage report as artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
name: awx-collection-integration-coverage-html name: awx-collection-integration-coverage-html
path: ~/.ansible/collections/ansible_collections/awx/awx/tests/output/reports/coverage path: ~/.ansible/collections/ansible_collections/awx/awx/tests/output/reports/coverage

View File

@ -832,7 +832,7 @@ class CredentialTypeInjectorField(JSONSchemaField):
'type': 'string', 'type': 'string',
# The environment variable _value_ can be any ascii, # The environment variable _value_ can be any ascii,
# but pexpect will choke on any unicode # but pexpect will choke on any unicode
'pattern': '^[\x00-\x7F]*$', 'pattern': '^[\x00-\x7f]*$',
}, },
}, },
'additionalProperties': False, 'additionalProperties': False,

View File

@ -17,8 +17,8 @@ tables_to_drop = [
'djkombu_message', 'djkombu_message',
'djkombu_queue', 'djkombu_queue',
] ]
postgres_sql = ([("DROP TABLE IF EXISTS {} CASCADE;".format(table))] for table in tables_to_drop) postgres_sql = (["DROP TABLE IF EXISTS {} CASCADE;".format(table)] for table in tables_to_drop)
sqlite_sql = ([("DROP TABLE IF EXISTS {};".format(table))] for table in tables_to_drop) sqlite_sql = (["DROP TABLE IF EXISTS {};".format(table)] for table in tables_to_drop)
class Migration(migrations.Migration): class Migration(migrations.Migration):

View File

@ -83,7 +83,7 @@ def test_ansi_stdout_filtering(sqlite_copy, Parent, Child, relation, view, downl
job = Parent() job = Parent()
job.save() job.save()
for i in range(3): for i in range(3):
Child(**{relation: job, 'stdout': '\x1B[0;36mTesting {}\x1B[0m\n'.format(i), 'start_line': i}).save() Child(**{relation: job, 'stdout': '\x1b[0;36mTesting {}\x1b[0m\n'.format(i), 'start_line': i}).save()
url = reverse(view, kwargs={'pk': job.pk}) url = reverse(view, kwargs={'pk': job.pk})
# ansi codes in ?format=txt should get filtered # ansi codes in ?format=txt should get filtered
@ -96,7 +96,7 @@ def test_ansi_stdout_filtering(sqlite_copy, Parent, Child, relation, view, downl
# ask for ansi and you'll get it # ask for ansi and you'll get it
fmt = "?format={}".format("ansi_download" if download else "ansi") fmt = "?format={}".format("ansi_download" if download else "ansi")
response = get(url + fmt, user=admin, expect=200) response = get(url + fmt, user=admin, expect=200)
assert smart_str(response.content).splitlines() == ['\x1B[0;36mTesting %d\x1B[0m' % i for i in range(3)] assert smart_str(response.content).splitlines() == ['\x1b[0;36mTesting %d\x1b[0m' % i for i in range(3)]
has_download_header = response.has_header('Content-Disposition') has_download_header = response.has_header('Content-Disposition')
assert has_download_header if download else not has_download_header assert has_download_header if download else not has_download_header
@ -115,7 +115,7 @@ def test_colorized_html_stdout(sqlite_copy, Parent, Child, relation, view, get,
job = Parent() job = Parent()
job.save() job.save()
for i in range(3): for i in range(3):
Child(**{relation: job, 'stdout': '\x1B[0;36mTesting {}\x1B[0m\n'.format(i), 'start_line': i}).save() Child(**{relation: job, 'stdout': '\x1b[0;36mTesting {}\x1b[0m\n'.format(i), 'start_line': i}).save()
url = reverse(view, kwargs={'pk': job.pk}) + '?format=html' url = reverse(view, kwargs={'pk': job.pk}) + '?format=html'
response = get(url, user=admin, expect=200) response = get(url, user=admin, expect=200)

View File

@ -118,8 +118,8 @@ class TestSmartFilterQueryFromString:
@pytest.mark.parametrize( @pytest.mark.parametrize(
"filter_string,q_expected", "filter_string,q_expected",
[ [
(u'(a=abc\u1F5E3def)', Q(**{u"a": u"abc\u1F5E3def"})), (u'(a=abc\u1f5e3def)', Q(**{u"a": u"abc\u1f5e3def"})),
(u'(ansible_facts__a=abc\u1F5E3def)', Q(**{u"ansible_facts__contains": {u"a": u"abc\u1F5E3def"}})), (u'(ansible_facts__a=abc\u1f5e3def)', Q(**{u"ansible_facts__contains": {u"a": u"abc\u1f5e3def"}})),
], ],
) )
def test_unicode(self, mock_get_host_model, filter_string, q_expected): def test_unicode(self, mock_get_host_model, filter_string, q_expected):

View File

@ -266,9 +266,9 @@ def random_utf8(*args, **kwargs):
exception when a character outside of the BMP is sent to `send_keys`. exception when a character outside of the BMP is sent to `send_keys`.
Code pulled from http://stackoverflow.com/a/3220210. Code pulled from http://stackoverflow.com/a/3220210.
""" """
pattern = re.compile('[^\u0000-\uD7FF\uE000-\uFFFF]', re.UNICODE) pattern = re.compile('[^\u0000-\ud7ff\ue000-\uffff]', re.UNICODE)
length = args[0] if len(args) else kwargs.get('length', 10) length = args[0] if len(args) else kwargs.get('length', 10)
scrubbed = pattern.sub('\uFFFD', ''.join([gen_utf_char() for _ in range(length)])) scrubbed = pattern.sub('\ufffd', ''.join([gen_utf_char() for _ in range(length)]))
return scrubbed return scrubbed