Ostree Nightly CI #286
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
# WARNING: DO NOT EDIT! | |
# | |
# This file was generated by plugin_template, and is managed by it. Please use | |
# './plugin-template --github pulp_ostree' to update this file. | |
# | |
# For more info visit https://github.com/pulp/plugin_template | |
--- | |
name: Ostree 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: | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
env: | |
- TEST: pulp | |
- TEST: docs | |
- TEST: azure | |
- TEST: s3 | |
- TEST: generate-bindings | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
# by default, it uses a depth of 1 | |
# this fetches all history so that we can read each commit | |
fetch-depth: 0 | |
- 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: | |
# by default, it uses a depth of 1 | |
# this fetches all history so that we can read each commit | |
fetch-depth: 0 | |
- 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: | |
# by default, it uses a depth of 1 | |
# this fetches all history so that we can read each commit | |
fetch-depth: 0 | |
- 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 Ruby client | |
uses: actions/download-artifact@v3 | |
with: | |
name: ruby-client.tar | |
- name: Untar Ruby client packages | |
run: tar -xvf ruby-client.tar | |
- name: Publish client to rubygems | |
run: bash .github/workflows/scripts/publish_client_gem.sh | |
- name: Download Python client | |
uses: actions/download-artifact@v3 | |
with: | |
name: python-client.tar | |
- name: Untar python client packages | |
run: tar -xvf python-client.tar | |
- name: Publish client to pypi | |
run: bash .github/workflows/scripts/publish_client_pypi.sh | |
- 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" |