Skip to content

Python Nightly CI

Python Nightly CI #949

Workflow file for this run

# WARNING: DO NOT EDIT!
#
# This file was generated by plugin_template, and is managed by it. Please use
# './plugin-template --github pulp_python' to update this file.
#
# For more info visit https://github.com/pulp/plugin_template
---
name: Python Nightly CI/CD
on:
schedule:
# * is a special character in YAML so you have to quote this string
# runs at 3:00 UTC daily
- cron: '00 3 * * *'
workflow_dispatch:
concurrency:
group: ${{ github.ref_name }}-${{ github.workflow }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
env:
- TEST: pulp
- TEST: docs
- TEST: azure
- TEST: s3
- TEST: generate-bindings
- TEST: lowerbounds
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: actions/setup-python@v3
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
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 }}
- uses: ruby/setup-ruby@v1
if: ${{ env.TEST == 'bindings' || env.TEST == 'generate-bindings' }}
with:
ruby-version: "2.6"
- 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
run: python3 .github/workflows/scripts/secrets.py "$SECRETS_CONTEXT"
env:
SECRETS_CONTEXT: ${{ toJson(secrets) }}
- name: Install Python client
run: .github/workflows/scripts/install_python_client.sh
shell: bash
- name: Install Ruby client
if: ${{ env.TEST == 'bindings' || env.TEST == 'generate-bindings' }}
run: .github/workflows/scripts/install_ruby_client.sh
shell: bash
- 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: Upload python client packages
if: ${{ env.TEST == 'bindings' || env.TEST == 'generate-bindings' }}
uses: actions/upload-artifact@v3
with:
name: python-client.tar
path: python-client.tar
- name: Upload python client docs
if: ${{ env.TEST == 'bindings' || env.TEST == 'generate-bindings' }}
uses: actions/upload-artifact@v3
with:
name: python-client-docs.tar
path: python-client-docs.tar
- name: Upload ruby client packages
if: ${{ env.TEST == 'bindings' || env.TEST == 'generate-bindings' }}
uses: actions/upload-artifact@v3
with:
name: ruby-client.tar
path: ruby-client.tar
- name: Upload built docs
if: ${{ env.TEST == 'docs' }}
uses: actions/upload-artifact@v3
with:
name: docs.tar
path: docs/docs.tar
- 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"
changelog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: actions/setup-python@v3
with:
python-version: "3.8"
- name: Install python dependencies
run: |
echo ::group::PYDEPS
pip install gitpython requests packaging
echo ::endgroup::
- name: Configure Git with pulpbot name and email
run: |
git config --global user.name 'pulpbot'
git config --global user.email '[email protected]'
- name: Changelog history
run: python .ci/scripts/changelog.py
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
token: ${{ secrets.RELEASE_TOKEN }}
committer: pulpbot <[email protected]>
author: pulpbot <[email protected]>
title: 'Update Changelog'
body: '[noissue]'
branch: 'changelog/update'
base: main
commit-message: |
Update Changelog
[noissue]
delete-branch: true
publish:
runs-on: ubuntu-latest
needs: test
env:
TEST: publish
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: actions/setup-python@v3
with:
python-version: "3.8"
- uses: ruby/setup-ruby@v1
with:
ruby-version: "2.6"
- 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: Install python dependencies
run: |
echo ::group::PYDEPS
pip install wheel
echo ::endgroup::
- 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: Install Python client
run: .github/workflows/scripts/install_python_client.sh
shell: bash
- name: Install Ruby client
run: .github/workflows/scripts/install_ruby_client.sh
shell: bash
- 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
run: python3 .github/workflows/scripts/secrets.py "$SECRETS_CONTEXT"
env:
SECRETS_CONTEXT: ${{ toJson(secrets) }}
- name: Download built docs
uses: actions/download-artifact@v3
with:
name: docs.tar
- name: Download Python client docs
uses: actions/download-artifact@v3
with:
name: python-client-docs.tar
- name: Publish docs to pulpproject.org
run: |
tar -xvf docs.tar -C ./docs
.github/workflows/scripts/publish_docs.sh nightly ${GITHUB_REF##*/}
- 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"