Add ability to update ci_update_branches from create-branch workflow #1496
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Test bootstrapping a plugin | |
on: | |
pull_request: | |
branches: | |
- '*' | |
jobs: | |
ready-to-ship: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: pulp_catdog | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
path: plugin_template | |
fetch-depth: 0 | |
- uses: actions/setup-python@v3 | |
with: | |
python-version: "3.8" | |
- name: Bootstrap catdog plugin | |
working-directory: plugin_template | |
run: | | |
.ci/bootstrap_catdog.sh | |
# Below this line we include the steps of the ci workflow of the generated plugin | |
- name: Install requirements | |
run: pip3 install github | |
- name: Check commit message | |
# This will fail for our fake plugin | |
if: false | |
env: | |
PY_COLORS: '1' | |
ANSIBLE_FORCE_COLOR: '1' | |
GITHUB_PULL_REQUEST: ${{ github.event.number }} | |
GITHUB_PULL_REQUEST_BODY: ${{ github.event.pull_request.body }} | |
GITHUB_BRANCH: ${{ github.head_ref }} | |
GITHUB_REPO_SLUG: ${{ github.repository }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_CONTEXT: ${{ github.event.pull_request.commits_url }} | |
run: sh .github/workflows/scripts/check_commit.sh | |
- name: Verify requirements files | |
run: python .ci/scripts/check_requirements.py | |
single_commit: | |
runs-on: ubuntu-latest | |
name: Assert single commit | |
if: github.base_ref == 'main' | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Checkout main | |
run: git fetch origin main | |
- name: create local main branch | |
run: git branch main origin/main | |
- name: Commit Count Check | |
run: test `git log --oneline --no-merges HEAD ^main | wc -l ` = 1 | |
lint: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: pulp_catdog | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
path: plugin_template | |
fetch-depth: 0 | |
- uses: actions/setup-python@v3 | |
with: | |
python-version: "3.8" | |
- name: Lint plugin_template | |
working-directory: plugin_template | |
run: | | |
pip3 install black flake8 | |
black --version | |
black --check --diff plugin-template utils.py | |
flake8 plugin-template utils.py | |
- name: Bootstrap catdog plugin | |
working-directory: plugin_template | |
run: | | |
.ci/bootstrap_catdog.sh | |
# Below this line we include the steps of the ci workflow of the generated plugin | |
- name: Install requirements | |
run: pip3 install -r lint_requirements.txt | |
# run black separately from flake8 to get a diff | |
- name: Run black | |
run: | | |
black --version | |
black --check --diff . | |
# Lint code. | |
- name: Run flake8 | |
run: flake8 | |
- name: Run extra lint checks | |
run: "[ ! -x .ci/scripts/extra_linting.sh ] || .ci/scripts/extra_linting.sh" | |
# check for any files unintentionally left out of MANIFEST.in | |
- name: Check manifest | |
run: check-manifest | |
- name: Check for pulpcore imports outside of pulpcore.plugin | |
run: sh .ci/scripts/check_pulpcore_imports.sh | |
- name: Check for gettext problems | |
run: sh .ci/scripts/check_gettext.sh | |
test: | |
runs-on: ubuntu-latest | |
# run only after lint finishes | |
needs: lint | |
strategy: | |
fail-fast: false | |
matrix: | |
env: | |
- TEST: pulp | |
- TEST: docs | |
- TEST: azure | |
- TEST: s3 | |
- TEST: lowerbounds | |
outputs: | |
deprecations-pulp: ${{ steps.deprecations.outputs.deprecations-pulp }} | |
deprecations-azure: ${{ steps.deprecations.outputs.deprecations-azure }} | |
deprecations-s3: ${{ steps.deprecations.outputs.deprecations-s3 }} | |
deprecations-lowerbounds: ${{ steps.deprecations.outputs.deprecations-lowerbounds }} | |
defaults: | |
run: | |
working-directory: pulp_catdog | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
path: plugin_template | |
# We need the full history for bootstrapping | |
fetch-depth: 0 | |
- uses: actions/setup-python@v3 | |
with: | |
python-version: "3.8" | |
- name: Bootstrap catdog plugin | |
working-directory: plugin_template | |
run: | | |
.ci/bootstrap_catdog.sh | |
# Below this line we include the steps of the ci workflow of the generated plugin | |
- name: Install httpie | |
run: | | |
echo ::group::HTTPIE | |
pip install httpie | |
echo ::endgroup:: | |
echo "HTTPIE_CONFIG_DIR=$GITHUB_WORKSPACE/.ci/assets/httpie/" >> $GITHUB_ENV | |
- name: Set environment variables | |
run: | | |
echo "TEST=${{ matrix.env.TEST }}" >> $GITHUB_ENV | |
- name: Before Install | |
run: .github/workflows/scripts/before_install.sh | |
shell: bash | |
env: | |
PY_COLORS: '1' | |
ANSIBLE_FORCE_COLOR: '1' | |
GITHUB_PULL_REQUEST: ${{ github.event.number }} | |
GITHUB_PULL_REQUEST_BODY: ${{ github.event.pull_request.body }} | |
GITHUB_BRANCH: ${{ github.head_ref }} | |
GITHUB_REPO_SLUG: ${{ github.repository }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_CONTEXT: ${{ github.event.pull_request.commits_url }} | |
- name: Install | |
run: .github/workflows/scripts/install.sh | |
shell: bash | |
env: | |
PY_COLORS: '1' | |
ANSIBLE_FORCE_COLOR: '1' | |
GITHUB_PULL_REQUEST: ${{ github.event.number }} | |
GITHUB_PULL_REQUEST_BODY: ${{ github.event.pull_request.body }} | |
GITHUB_BRANCH: ${{ github.head_ref }} | |
GITHUB_REPO_SLUG: ${{ github.repository }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_CONTEXT: ${{ github.event.pull_request.commits_url }} | |
- name: Before Script | |
run: .github/workflows/scripts/before_script.sh | |
shell: bash | |
env: | |
PY_COLORS: '1' | |
ANSIBLE_FORCE_COLOR: '1' | |
GITHUB_PULL_REQUEST: ${{ github.event.number }} | |
GITHUB_PULL_REQUEST_BODY: ${{ github.event.pull_request.body }} | |
GITHUB_BRANCH: ${{ github.head_ref }} | |
GITHUB_REPO_SLUG: ${{ github.repository }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_CONTEXT: ${{ github.event.pull_request.commits_url }} | |
REDIS_DISABLED: ${{ contains('s3', matrix.env.TEST) }} | |
- name: Setting secrets | |
if: github.event_name != 'pull_request' | |
run: python3 .github/workflows/scripts/secrets.py "$SECRETS_CONTEXT" | |
env: | |
SECRETS_CONTEXT: ${{ toJson(secrets) }} | |
- name: Script | |
run: .github/workflows/scripts/script.sh | |
shell: bash | |
env: | |
PY_COLORS: '1' | |
ANSIBLE_FORCE_COLOR: '1' | |
GITHUB_PULL_REQUEST: ${{ github.event.number }} | |
GITHUB_PULL_REQUEST_BODY: ${{ github.event.pull_request.body }} | |
GITHUB_BRANCH: ${{ github.head_ref }} | |
GITHUB_REPO_SLUG: ${{ github.repository }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_CONTEXT: ${{ github.event.pull_request.commits_url }} | |
- name: Extract Deprecations from Logs | |
id: deprecations | |
run: echo deprecations-${{ matrix.env.TEST }}=$(docker logs pulp 2>&1 | grep -i pulpcore.deprecation | base64 -w 0) >> $GITHUB_OUTPUT | |
- name: Logs | |
if: always() | |
run: | | |
echo "Need to debug? Please check: https://github.com/marketplace/actions/debugging-with-tmate" | |
http --timeout 30 --check-status --pretty format --print hb "https://pulp${PULP_API_ROOT}api/v3/status/" || true | |
docker images || true | |
docker ps -a || true | |
docker logs pulp || true | |
docker exec pulp ls -latr /etc/yum.repos.d/ || true | |
docker exec pulp cat /etc/yum.repos.d/* || true | |
docker exec pulp bash -c "pip3 list && pip3 install pipdeptree && pipdeptree" | |
deprecations: | |
runs-on: ubuntu-latest | |
if: always() | |
needs: test | |
steps: | |
- name: Fail on deprecations | |
run: | | |
test -z "${{ needs.test.outputs.deprecations-pulp }}" | |
test -z "${{ needs.test.outputs.deprecations-azure }}" | |
test -z "${{ needs.test.outputs.deprecations-s3 }}" | |
test -z "${{ needs.test.outputs.deprecations-lowerbounds }}" | |
- name: Print deprecations | |
if: failure() | |
run: | | |
echo "${{ needs.test.outputs.deprecations-pulp }}" | base64 -d | |
echo "${{ needs.test.outputs.deprecations-azure }}" | base64 -d | |
echo "${{ needs.test.outputs.deprecations-s3 }}" | base64 -d | |
echo "${{ needs.test.outputs.deprecations-lowerbounds }}" | base64 -d | |