diff --git a/.github/workflows/import-galaxy.yml b/.github/workflows/import-galaxy.yml index d5bcb5b5c..0c0ee402a 100644 --- a/.github/workflows/import-galaxy.yml +++ b/.github/workflows/import-galaxy.yml @@ -13,118 +13,8 @@ name: import-galaxy pull_request: jobs: - build-collection: - name: Build collection artifact - runs-on: ubuntu-latest - steps: - - name: Check out code - uses: actions/checkout@v4 - with: - path: ./checkout - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.12' - - - name: Install ansible-core devel - run: pip install https://github.com/ansible/ansible/archive/devel.tar.gz --disable-pip-version-check - - - name: Make sure galaxy.yml has version entry - shell: python - id: collection-metadata - run: | - import os - import yaml - - def set_output(name, value): - with open(os.environ['GITHUB_OUTPUT'], 'a', encoding='utf-8') as f: - f.write(f'{name}={value}{os.linesep}') - - # Make sure galaxy.yml contains a version - with open('galaxy.yml', 'rb') as f: - data = yaml.safe_load(f) ; - data['version'] = data.get('version') or '0.0.1' - with open('galaxy.yml', 'w', encoding='utf-8') as f: - f.write(yaml.dump(data)) - - # Create Galaxy requirements file - if data.get('dependencies'): - reqs = dict(collections=[]) - for collection, version in sorted(data['dependencies'].items()): - reqs['collections'].append(dict( - name=collection, - source='https://galaxy.ansible.com', - version=version, - )) - with open('../requirements.yml', 'w', encoding='utf-8') as f: - f.write(yaml.dump(reqs)) - - # Extract namespace and collection name - set_output('name', data['name']) - set_output('namespace', data['namespace']) - set_output('version', data['version']) - set_output('filename', f"{data['namespace']}-{data['name']}-{data['version']}.tar.gz") - working-directory: ./checkout - - - name: Build collection - run: ansible-galaxy collection build - working-directory: ./checkout - - - name: Copy artifact into subdirectory - shell: bash - run: | - set -e - mkdir artifact - mv checkout/${{ steps.collection-metadata.outputs.filename }} artifact/ - if [ -f requirements.yml ]; then - mv requirements.yml artifact/ - fi - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: collection-build-${{ github.sha }} - path: ./artifact/ - import-galaxy: - name: Import artifact with Galaxy importer - runs-on: ubuntu-latest - needs: - - build-collection - steps: - - name: Set up Python - uses: actions/setup-python@v5 - with: - # Currently requirements-parser is incompatible with Python 3.12 - # (https://github.com/madpah/requirements-parser/issues/88), so we - # have to stick to Python 3.11 for now... - python-version: '3.11' - - - name: Install ansible-core devel - run: pip install https://github.com/ansible/ansible/archive/devel.tar.gz --disable-pip-version-check - - - name: Install galaxy-importer - run: pip install galaxy-importer --disable-pip-version-check - - - name: Download artifact - uses: actions/download-artifact@v4 - with: - name: collection-build-${{ github.sha }} - - - name: List files - shell: bash - run: | - ls -la - - - name: Install collection dependencies - shell: bash - run: | - if [ -f requirements.yml ]; then - ansible-galaxy collection install --pre --requirements-file requirements.yml - else - echo "Collection has no dependencies." - fi - - - name: Run Galaxy importer - run: python -m galaxy_importer.main *-*-*.tar.gz + permissions: + contents: read + name: Test to import built collection artifact with Galaxy importer + uses: ansible-community/github-action-test-galaxy-import/.github/workflows/test-galaxy-import.yml@main