Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update CI files for branch 2.20 #966

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/template_gitref
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2021.08.26-251-g45d399d
2021.08.26-292-gc6f5178
44 changes: 44 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# WARNING: DO NOT EDIT!
#
# This file was generated by plugin_template, and is managed by it. Please use
# './plugin-template --github pulp_deb' to update this file.
#
# For more info visit https://github.com/pulp/plugin_template

---
name: "Build"
on:
workflow_call:

defaults:
run:
working-directory: "pulp_deb"

jobs:
build:
runs-on: "ubuntu-latest"

steps:
- uses: "actions/checkout@v4"
with:
fetch-depth: 1
path: "pulp_deb"
- uses: "actions/setup-python@v4"
with:
python-version: "3.8"
- name: "Install python dependencies"
run: |
echo ::group::PYDEPS
pip install packaging twine wheel
echo ::endgroup::
- name: "Build package"
run: |
python3 setup.py sdist bdist_wheel --python-tag py3
twine check dist/*
- name: "Upload Package whl"
uses: "actions/upload-artifact@v3"
with:
name: "plugin_package"
path: "pulp_deb/dist/"
if-no-files-found: "error"
retention-days: 5
30 changes: 15 additions & 15 deletions .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,53 +6,53 @@
# For more info visit https://github.com/pulp/plugin_template

---
name: Deb changelog update
name: "Deb changelog update"
on:
push:
branches:
- main
- "main"
paths:
- CHANGES.rst
- CHANGES.md
- "CHANGES.rst"
- "CHANGES.md"
workflow_dispatch:

jobs:

update-changelog:
runs-on: ubuntu-latest
runs-on: "ubuntu-latest"
strategy:
fail-fast: false

steps:
- uses: actions/checkout@v4
- uses: "actions/checkout@v4"
with:
fetch-depth: 1

- uses: actions/setup-python@v4
- uses: "actions/setup-python@v4"
with:
python-version: "3.8"

- name: Install python dependencies
- name: "Install python dependencies"
run: |
echo ::group::PYDEPS
pip install -r doc_requirements.txt
echo ::endgroup::

- name: Fake api schema
- name: "Fake api schema"
run: |
mkdir -p docs/_build/html
echo "{}" > docs/_build/html/api.json
mkdir -p docs/_static
echo "{}" > docs/_static/api.json
- name:
- name: "Build Docs"
run: |
pip install "Jinja2<3.1"
make diagrams html
working-directory: ./docs
working-directory: "./docs"
env:
PULP_CONTENT_ORIGIN: "http://localhost/"

- name: Publish changlog to pulpproject.org
run: .github/workflows/scripts/publish_docs.sh changelog ${GITHUB_REF##*/}
- name: "Publish changlog to pulpproject.org"
run: |
.github/workflows/scripts/publish_docs.sh changelog ${GITHUB_REF##*/}
env:
PULP_DOCS_KEY: ${{ secrets.PULP_DOCS_KEY }}
PULP_DOCS_KEY: "${{ secrets.PULP_DOCS_KEY }}"
238 changes: 59 additions & 179 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,208 +6,88 @@
# For more info visit https://github.com/pulp/plugin_template

---
name: Deb CI
name: "Deb CI"
on: {pull_request: {branches: ['*']}}

concurrency:
group: ${{ github.ref_name }}-${{ github.workflow }}
cancel-in-progress: true

jobs:
defaults:
run:
working-directory: "pulp_deb"

ready-to-ship:
runs-on: ubuntu-latest
jobs:
check-commits:
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v4
- uses: "actions/checkout@v4"
with:
fetch-depth: 0
- uses: actions/setup-python@v4
path: "pulp_deb"
- uses: "actions/setup-python@v4"
with:
python-version: "3.8"
- name: Install requirements
run: pip3 install github
- name: Check commit message
- name: "Install python dependencies"
run: |
echo ::group::PYDEPS
pip install requests pygithub
echo ::endgroup::
- name: "Check commit message"
if: github.event_name == 'pull_request'
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

lint:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions/setup-python@v4
with:
python-version: "3.8"
# lint_requirements contains tools needed for flake8, etc.
- name: Install requirements
run: pip3 install -r lint_requirements.txt

# run black separately from flake8 to get a diff
- name: Run black
PY_COLORS: "1"
ANSIBLE_FORCE_COLOR: "1"
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
GITHUB_CONTEXT: "${{ github.event.pull_request.commits_url }}"
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 }}

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1

- uses: actions/setup-python@v4
with:
python-version: "3.8"

- 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
.github/workflows/scripts/check_commit.sh
- name: "Verify requirements files"
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 }}
python .ci/scripts/check_requirements.py

- 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('', 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) }}
lint:
uses: "./.github/workflows/lint.yml"

- 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 }}
build:
needs: "lint"
uses: "./.github/workflows/build.yml"

- 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
test:
needs: "build"
uses: "./.github/workflows/test.yml"

- 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
runs-on: "ubuntu-latest"
if: github.base_ref == 'main'
needs: test
needs: "test"
steps:
- name: Fail on deprecations
- name: "Create working directory"
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()
mkdir -p "pulp_deb"
working-directory: "."
- name: "Download Deprecations"
uses: actions/download-artifact@v3
with:
name: "deprecations"
path: "pulp_deb"
- name: "Print deprecations"
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

cat deprecations-*.txt | sort -u
! cat deprecations-*.txt | grep '[^[:space:]]'

ready-to-ship:
# This is a dummy dependent task to have a single entry for the branch protection rules.
runs-on: "ubuntu-latest"
needs:
- "check-commits"
- "lint"
- "test"
if: "always()"
steps:
- name: "Collect needed jobs results"
working-directory: "."
run: |
echo '${{toJson(needs)}}' | jq -r 'to_entries[]|select(.value.result!="success")|.key + ": " + .value.result'
echo '${{toJson(needs)}}' | jq -e 'to_entries|map(select(.value.result!="success"))|length == 0'
echo "CI says: Looks good!"
Loading
Loading