Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
11 changes: 0 additions & 11 deletions .devcontainer/apt-packages.txt

This file was deleted.

5 changes: 1 addition & 4 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,7 @@
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/base:jammy",

"postCreateCommand": "time pip install -r .devcontainer/requirements.txt && time pipx install --include-deps --force ansible && time pipx inject ansible -r .devcontainer/requirements-ansible.txt && time pre-commit install",

// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode",
// Note: Python dependencies can be added in the `requirements.txt` file.
"onCreateCommand": "sudo apt update && xargs -a .devcontainer/apt-packages.txt sudo apt-get install -y"
"onCreateCommand": "sudo apt-get update && sudo apt-get install -y ansible && ansible-playbook .devcontainer/provision.yml"
}
82 changes: 82 additions & 0 deletions .devcontainer/provision.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
---
- name: Provision dev container
Comment thread
kenorb marked this conversation as resolved.
hosts: localhost
connection: local
become: true
vars:
apt_packages:
- coreutils
- direnv
- figlet
- findutils
- gh
- git
- links
- mawk
- sed
- time
- vim
ansible_python_requirements:
- docker>=7.1
- requests==2.32.5

tasks:
- name: Update apt cache
ansible.builtin.apt:
update_cache: true

- name: Install apt packages
ansible.builtin.apt:
name: "{{ apt_packages }}"
state: present

- name: Install python requirements
ansible.builtin.pip:
requirements: "{{ playbook_dir }}/requirements.txt"
state: present

- name: Install ansible via pipx
ansible.builtin.command: pipx install --include-deps --force ansible
become: false
register: pipx_install
changed_when: "'already installed' not in pipx_install.stderr"
failed_when: pipx_install.rc != 0 and 'already installed' not in pipx_install.stderr

- name: Check ansible python requirements already injected
ansible.builtin.command: "pipx runpip ansible show {{ item }}"
loop: "{{ ansible_python_requirements }}"
register: pipx_injected
become: false
failed_when: false
changed_when: false

- name: Inject ansible python requirements
ansible.builtin.command: "pipx inject ansible {{ item }}"
loop: "{{ ansible_python_requirements }}"
loop_control:
index_var: req_index
when: pipx_injected.results[req_index].rc != 0
become: false
changed_when: true

- name: Check if requirements.yml exists
ansible.builtin.stat:
path: "{{ playbook_dir }}/../requirements.yml"
register: requirements_yml
become: false

- name: Install ansible collections
ansible.builtin.command: ansible-galaxy collection install -r requirements.yml
args:
chdir: "{{ playbook_dir }}/.."
become: false
register: galaxy_result
when: requirements_yml.stat.exists
changed_when: "'Nothing to do' not in galaxy_result.stdout"

- name: Install pre-commit hooks
ansible.builtin.command: pre-commit install
args:
chdir: "{{ playbook_dir }}/.."
creates: .git/hooks/pre-commit
become: false
4 changes: 0 additions & 4 deletions .devcontainer/requirements-ansible.txt

This file was deleted.

4 changes: 4 additions & 0 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ name: Check
# yamllint disable-line rule:truthy
on:
pull_request:
paths-ignore:
- '.devcontainer/**'
push:
paths-ignore:
- '.devcontainer/**'
schedule:
- cron: 0 0 * * 1 # Run every Monday at 00:00 UTC
workflow_call:
Expand Down
Loading