Compare commits

...

37 Commits

Author SHA1 Message Date
Jeff Geerling d5d1d2e4dd
Merge pull request #64 from dmotte/pr-fix-executable-virtualenv
Omit executable if item.virtualenv is defined
2024-03-09 13:59:21 -06:00
dmotte 105436e80f Omit executable if item.virtualenv is defined 2024-03-09 14:01:37 +01:00
Jeff Geerling 59700c8f1f Bump CI workflow versions. 2024-01-24 22:51:24 -06:00
Jeff Geerling 69ce0d8149 Getting a version number changes nothing. 2024-01-24 22:48:16 -06:00
Jeff Geerling f120430ad6 Make local dev with molecule a little easier. 2024-01-24 22:06:46 -06:00
Jeff Geerling adac76a28c
Merge pull request #63 from blakeashleyjr/patch-1
Update README.md to fix single-letter typo
2023-11-27 22:11:48 -06:00
Blake Ashley fcc23775fe
Update README.md to fix single-letter typo
Correct packge to package
2023-11-27 17:24:07 -08:00
Jeff Geerling 832e5ce6ed
Merge pull request #62 from zloveless/hack/deb12-externally-managed
Check major version before trying to remove externally managed.
2023-10-29 15:05:25 -05:00
Zack Lovelelss 6c927a7881 Check major version before trying to remove externally managed. 2023-10-28 03:59:33 +00:00
Jeff Geerling 13c187c5f8 PR #58 follow-up. 2023-10-20 20:58:08 -05:00
Jeff Geerling 160021b3d5
Merge pull request #58 from barnabasbusa/master
fix: remove EXERTNALLY-MANAGED on Debian12
2023-10-20 20:51:14 -05:00
Barnabas Busa 7886617de5
bump actions versions, as they dropping support soon 2023-08-11 10:34:25 +02:00
Barnabas Busa 9de8ba5c86
bump actions versions, as they dropping support soon 2023-08-11 10:32:40 +02:00
Barnabas Busa 12de34e3a9
fix yamllint 2023-08-11 10:27:36 +02:00
Barnabas Busa 088273d11b
move the external managed task into a subtask, update ci to run newer images 2023-08-11 10:24:46 +02:00
Barnabas Busa 2aef145841
fix: remove EXERTNALLY-MANAGED on Debian12 2023-08-07 15:22:46 +02:00
Jeff Geerling 65c354cc65 Stale bot is now Stale GitHub Action. 2023-07-10 17:48:41 -05:00
Jeff Geerling 641cee6b62 Remove official support for RHEL. Rocky/Alma/Stream support is best-effort. 2023-06-23 10:57:26 -05:00
Jeff Geerling 2cd2805307 Fix Molecule CI workflow since docker plugin has moved. 2023-04-20 17:28:14 -05:00
Jeff Geerling 456566abab Fix Molecule CI workflow for Ubuntu 22.04 GitHub Actions. 2022-12-06 18:24:34 -06:00
Jeff Geerling 0360ca42ee
Merge pull request #48 from speechmatics/extra-args
Add support for extra_args
2022-08-25 15:23:44 -05:00
David Gray 21455b6dba Add support for extra_args
'extra_args' has been available since 1.0 of ansible.builtin and this
module already uses 'executable' which was added in 1.3 so this should
be perfectly safe to add.
2022-08-25 15:14:14 +01:00
Jeff Geerling 248ac65fbb Add role_name_check skipping to all molecule test suites. 2022-06-01 22:21:33 -05:00
Jeff Geerling 3dea9f6772 Update release workflow for more consistency. 2021-12-27 11:36:00 -06:00
Jeff Geerling 6e819c0e97 Make sure bugs aren't automatically closed. 2021-08-23 08:54:12 -05:00
Jeff Geerling eab20180c2 Switch to Rocky Linux 8 for RHEL-like tests. 2021-07-02 10:00:06 -05:00
Jeff Geerling c935c92c04
Merge pull request #43 from NiftyMist/typo-fix
corrected typo in readme
2021-05-29 17:17:57 -05:00
Jeff Geerling 5f4ab60283
Merge pull request #42 from fgierlinger/patch-1
Migrating from with_X to loop
2021-05-29 17:17:43 -05:00
Jeff Geerling 24aff0960e Remove ansible-lint from roles. 2021-03-15 09:29:19 -05:00
Jeff Geerling c44d7cd4da Make ansible-lint work again. 2021-02-22 16:16:26 -06:00
Dylan Mitchell 04add7b4c5 corrected typo in readme 2021-02-08 06:39:38 -05:00
fgierlinger f5212246e6
Migrating from with_X to loop
Fixes #36
2021-01-26 21:58:56 +01:00
Jeff Geerling fd6d58a571 Dump Travis CI and move to GitHub Actions. 2020-11-05 15:53:20 -06:00
Jeff Geerling 8bafb13646 Switch to travis-ci.com. 2020-10-26 20:12:04 -05:00
Jeff Geerling 5ec66573d5 Make sure docker driver is installed with molecule. 2020-10-15 17:05:49 -05:00
Jeff Geerling a2c8e54a56 Ignore the tyranny of ansible-lint rule 106. 2020-08-20 19:23:53 -05:00
Jeff Geerling 81ac0c6238 Upgrade Travis CI docker version to fix Molecule tests. 2020-08-12 14:56:51 -05:00
13 changed files with 190 additions and 102 deletions

3
.ansible-lint Normal file
View File

@ -0,0 +1,3 @@
skip_list:
- 'yaml'
- 'role-name'

56
.github/stale.yml vendored
View File

@ -1,56 +0,0 @@
# Configuration for probot-stale - https://github.com/probot/stale
# Number of days of inactivity before an Issue or Pull Request becomes stale
daysUntilStale: 90
# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
daysUntilClose: 30
# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
onlyLabels: []
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
exemptLabels:
- pinned
- security
- planned
# Set to true to ignore issues in a project (defaults to false)
exemptProjects: false
# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: false
# Set to true to ignore issues with an assignee (defaults to false)
exemptAssignees: false
# Label to use when marking as stale
staleLabel: stale
# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30
pulls:
markComment: |-
This pull request has been marked 'stale' due to lack of recent activity. If there is no further activity, the PR will be closed in another 30 days. Thank you for your contribution!
Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark pull requests as stale.
unmarkComment: >-
This pull request is no longer marked for closure.
closeComment: >-
This pull request has been closed due to inactivity. If you feel this is in error, please reopen the pull request or file a new PR with the relevant details.
issues:
markComment: |-
This issue has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution!
Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark issues as stale.
unmarkComment: >-
This issue is no longer marked for closure.
closeComment: >-
This issue has been closed due to inactivity. If you feel this is in error, please reopen the issue or file a new issue with the relevant details.

71
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,71 @@
---
name: CI
'on':
pull_request:
push:
branches:
- master
schedule:
- cron: "0 4 * * 5"
defaults:
run:
working-directory: 'geerlingguy.pip'
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Check out the codebase.
uses: actions/checkout@v3
with:
path: 'geerlingguy.pip'
- name: Set up Python 3.
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install test dependencies.
run: pip3 install yamllint
- name: Lint code.
run: |
yamllint .
molecule:
name: Molecule
runs-on: ubuntu-latest
strategy:
matrix:
distro:
- rockylinux9
- rockylinux8
- fedora39
- ubuntu2204
- ubuntu2004
- debian12
- debian11
steps:
- name: Check out the codebase.
uses: actions/checkout@v3
with:
path: 'geerlingguy.pip'
- name: Set up Python 3.
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install test dependencies.
run: pip3 install ansible molecule molecule-plugins[docker] docker
- name: Run Molecule tests.
run: molecule test
env:
PY_COLORS: '1'
ANSIBLE_FORCE_COLOR: '1'
MOLECULE_DISTRO: ${{ matrix.distro }}

40
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,40 @@
---
# This workflow requires a GALAXY_API_KEY secret present in the GitHub
# repository or organization.
#
# See: https://github.com/marketplace/actions/publish-ansible-role-to-galaxy
# See: https://github.com/ansible/galaxy/issues/46
name: Release
'on':
push:
tags:
- '*'
defaults:
run:
working-directory: 'geerlingguy.pip'
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
with:
path: 'geerlingguy.pip'
- name: Set up Python 3.
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install Ansible.
run: pip3 install ansible-core
- name: Trigger a new import on Galaxy.
run: >-
ansible-galaxy role import --api-key ${{ secrets.GALAXY_API_KEY }}
$(echo ${{ github.repository }} | cut -d/ -f1) $(echo ${{ github.repository }} | cut -d/ -f2)

34
.github/workflows/stale.yml vendored Normal file
View File

@ -0,0 +1,34 @@
---
name: Close inactive issues
'on':
schedule:
- cron: "55 21 * * 5" # semi-random time
jobs:
close-issues:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v8
with:
days-before-stale: 120
days-before-close: 60
exempt-issue-labels: bug,pinned,security,planned
exempt-pr-labels: bug,pinned,security,planned
stale-issue-label: "stale"
stale-pr-label: "stale"
stale-issue-message: |
This issue has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution!
Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark issues as stale.
close-issue-message: |
This issue has been closed due to inactivity. If you feel this is in error, please reopen the issue or file a new issue with the relevant details.
stale-pr-message: |
This pr has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution!
Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark issues as stale.
close-pr-message: |
This pr has been closed due to inactivity. If you feel this is in error, please reopen the issue or file a new issue with the relevant details.
repo-token: ${{ secrets.GITHUB_TOKEN }}

2
.gitignore vendored
View File

@ -1,3 +1,5 @@
*.retry
*/__pycache__
*.pyc
.cache

View File

@ -1,31 +0,0 @@
---
language: python
services: docker
env:
global:
- ROLE_NAME: pip
matrix:
- MOLECULE_DISTRO: centos8
- MOLECULE_DISTRO: centos7
- MOLECULE_DISTRO: fedora32
- MOLECULE_DISTRO: ubuntu2004
- MOLECULE_DISTRO: ubuntu1804
- MOLECULE_DISTRO: debian10
install:
# Install test dependencies.
- pip install molecule yamllint ansible-lint docker
before_script:
# Use actual Ansible Galaxy role name for the project directory.
- cd ../
- mv ansible-role-$ROLE_NAME geerlingguy.$ROLE_NAME
- cd geerlingguy.$ROLE_NAME
script:
# Run tests.
- molecule test
notifications:
webhooks: https://galaxy.ansible.com/api/v1/notifications/

View File

@ -1,6 +1,10 @@
---
extends: default
rules:
line-length:
max: 120
level: warning
ignore: |
.github/workflows/stale.yml

View File

@ -1,6 +1,6 @@
# Ansible Role: Pip (for Python)
[![Build Status](https://travis-ci.org/geerlingguy/ansible-role-pip.svg?branch=master)](https://travis-ci.org/geerlingguy/ansible-role-pip)
[![CI](https://github.com/geerlingguy/ansible-role-pip/workflows/CI/badge.svg?event=push)](https://github.com/geerlingguy/ansible-role-pip/actions?query=workflow%3ACI)
An Ansible Role that installs [Pip](https://pip.pypa.io) on Linux.
@ -14,7 +14,7 @@ Available variables are listed below, along with default values (see `defaults/m
pip_package: python3-pip
The name of the packge to install to get `pip` on the system. For older systems that don't have Python 3 available, you can set this to `python-pip`.
The name of the package to install to get `pip` on the system. For older systems that don't have Python 3 available, you can set this to `python-pip`.
pip_executable: pip3
@ -39,7 +39,7 @@ A list of packages to install with pip. Examples below:
- name: docker
state: absent
# Or update a package ot the latest version.
# Or update a package to the latest version.
- name: docker
state: latest
@ -51,6 +51,10 @@ A list of packages to install with pip. Examples below:
- name: docker
virtualenv: /my_app/venv
# Or pass through any extra arguments.
- name: my_special_package_from_my_special_repo
extra_args: --extra-index-url https://my-domain/pypi/pypi-master/simple
## Dependencies
None.

View File

@ -8,11 +8,8 @@ galaxy_info:
issue_tracker_url: https://github.com/geerlingguy/ansible-role-pip/issues
company: "Midwestern Mac, LLC"
license: "MIT"
min_ansible_version: 2.4
min_ansible_version: 2.10
platforms:
- name: EL
versions:
- all
- name: Fedora
versions:
- all

View File

@ -1,18 +1,18 @@
---
role_name_check: 1
dependency:
name: galaxy
options:
ignore-errors: true
driver:
name: docker
lint: |
set -e
yamllint .
ansible-lint
platforms:
- name: instance
image: "geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest"
image: "geerlingguy/docker-${MOLECULE_DISTRO:-rockylinux8}-ansible:latest"
command: ${MOLECULE_DOCKER_COMMAND:-""}
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
- /sys/fs/cgroup:/sys/fs/cgroup:rw
cgroupns_mode: host
privileged: true
pre_build_image: true
provisioner:

13
tasks/debian12.yml Normal file
View File

@ -0,0 +1,13 @@
---
# Remove EXTERNALLY-MANAGED file if we're on Debian12
# Related issue: https://github.com/geerlingguy/ansible-role-pip/issues/57
- name: Get python3 version installed
ansible.builtin.command: python3 --version
register: py3ver
changed_when: false
- name: Remove EXTERNALLY-MANAGED
ansible.builtin.file:
path: /usr/lib/python3.11/EXTERNALLY-MANAGED
state: absent
when: py3ver is defined and py3ver.stdout.find("3.11") != -1

View File

@ -1,4 +1,10 @@
---
- name: Remove externally managed from Debian 12
ansible.builtin.import_tasks: debian12.yml
when:
- ansible_distribution == "Debian"
- ansible_distribution_major_version|int >= 12
- name: Ensure Pip is installed.
package:
name: "{{ pip_package }}"
@ -10,5 +16,6 @@
version: "{{ item.version | default(omit) }}"
virtualenv: "{{ item.virtualenv | default(omit) }}"
state: "{{ item.state | default(omit) }}"
executable: "{{ pip_executable }}"
with_items: "{{ pip_install_packages }}"
extra_args: "{{ item.extra_args | default(omit) }}"
executable: "{{ item.virtualenv | default(false) | ternary(omit, pip_executable) }}"
loop: "{{ pip_install_packages }}"