Skip to content

Commit

Permalink
Migrate to GitHub actions (#7)
Browse files Browse the repository at this point in the history
  • Loading branch information
tobias-richter authored Feb 2, 2021
1 parent 5830ae2 commit 71565b3
Show file tree
Hide file tree
Showing 13 changed files with 156 additions and 63 deletions.
93 changes: 93 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---
name: CI

env:
ROLE_NAME: wcm_io_devops.jenkins_facts

defaults:
run:
working-directory: 'wcm_io_devops.jenkins_facts'

'on':
pull_request:
push:
branches:
- master

jobs:

lint:
name: "Lint (${{ matrix.NAME }})"
runs-on: ubuntu-latest
strategy:
matrix:
include:
- NAME: min_ansible_version
ANSIBLE_VERSION: "==2.7.*"
ANSIBLE_LINT_VERSION: "==4.2.*"
- NAME: latest
ANSIBLE_VERSION: ""
ANSIBLE_LINT_VERSION: ""

steps:
- name: Check out the codebase.
uses: actions/checkout@v2
with:
path: '${{ env.ROLE_NAME }}'

- name: Cache PIP
uses: actions/cache@v2
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ matrix.ANSIBLE_VERSION }}-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-${{ matrix.ANSIBLE_VERSION }}-
- name: Create ansible.cfg
run: "printf '[defaults]\nroles_path=./tests/requirements/:../' > ansible.cfg"

- name: Install role requirements
uses: BSFishy/pip-action@v1
with:
requirements: "${{ env.ROLE_NAME }}/requirements.txt"

- name: Set up Python 3.
uses: actions/setup-python@v2
with:
python-version: '3.x'

- name: Install pip tools.
run: |
pip3 install wheel --upgrade
- name: Install test dependencies.
run: >
pip3 install yamllint
ansible${{ matrix.ANSIBLE_VERSION }}
ansible-lint${{ matrix.ANSIBLE_LINT_VERSION }}
--upgrade
- name: Install Galaxy requirements.
run: |
ansible-galaxy install -r tests/requirements.yml -p ./tests/requirements
- name: Lint code.
run: |
yamllint .
ansible-lint
- name: Test syntax.
run: |
ansible-playbook tests/test.yml -i tests/inventory --syntax-check
galaxy:
name: "Ansible Galaxy import"
needs:
- lint
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
steps:
- name: Trigger a new import on Galaxy.
uses: robertdebock/galaxy-action@affc5472cd0b08f64a51eafba49b08898c1bbeb8
with:
galaxy_api_key: ${{ secrets.GALAXY_API_KEY }}
18 changes: 18 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: Release

'on':
release:
types:
- published

jobs:

release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Trigger a new import on Galaxy.
uses: robertdebock/galaxy-action@affc5472cd0b08f64a51eafba49b08898c1bbeb8
with:
galaxy_api_key: ${{ secrets.GALAXY_API_KEY }}
38 changes: 0 additions & 38 deletions .travis.yml

This file was deleted.

13 changes: 13 additions & 0 deletions .yamllint
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
extends: default

rules:
line-length:
max: 120
level: warning
truthy:
allowed-values: ['true', 'false', 'yes', 'no']

ignore: |
.travis.yml
tests/requirements/
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[![Build Status](https://travis-ci.com/wcm-io-devops/ansible-jenkins-facts.svg?branch=master)](https://travis-ci.com/wcm-io-devops/ansible-jenkins-facts)
[![CI](https://github.com/wcm-io-devops/ansible-jenkins-facts/workflows/CI/badge.svg?branch=master&event=push)](https://github.com/wcm-io-devops/ansible-jenkins-facts/actions?query=workflow%3ACI)

# wcm_io_devops.jenkins_facts

Expand Down
1 change: 1 addition & 0 deletions defaults/main.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
# Jenkins admin username
jenkins_facts_admin_username: admin

Expand Down
1 change: 1 addition & 0 deletions handlers/main.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
---
- name: wcm_io_devops.jenkins_facts gather
include: gather_jenkins_facts.yml
11 changes: 5 additions & 6 deletions meta/main.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
galaxy_info:
role_name: jenkins_facts
author: Tobias Richter
Expand All @@ -8,15 +9,13 @@ galaxy_info:
min_ansible_version: 2.7

platforms:
- name: Debian
versions:
- stretch
- buster
- name: Debian
versions:
- stretch
- buster

galaxy_tags:
- wcmio
- jenkins

allow_duplicates: yes

dependencies: []
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# This role needs to have the following PIP components installed
33 changes: 17 additions & 16 deletions tasks/gather_jenkins_facts.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
- name: "gather_jenkins_facts : execute gather script on jenkins instance."
jenkins_script:
script: "{{ lookup('file', 'scripts/groovy/gather_jenkins_facts.groovy') }}"
Expand All @@ -24,23 +25,23 @@

- block:

- name: "gather_jenkins_facts : get cookie and crumb."
uri:
url: "{{ jenkins_facts_jenkins_base_url }}/crumbIssuer/api/json"
user: "{{ jenkins_facts_admin_username }}"
password: "{{ jenkins_facts_admin_password }}"
timeout: "{{ jenkins_facts_uri_timeout }}"
return_content: true
force_basic_auth: true
method: GET
status_code: 200
register: _jenkins_facts_csrf_crumb_result
changed_when: false
- name: "gather_jenkins_facts : get cookie and crumb."
uri:
url: "{{ jenkins_facts_jenkins_base_url }}/crumbIssuer/api/json"
user: "{{ jenkins_facts_admin_username }}"
password: "{{ jenkins_facts_admin_password }}"
timeout: "{{ jenkins_facts_uri_timeout }}"
return_content: true
force_basic_auth: true
method: GET
status_code: 200
register: _jenkins_facts_csrf_crumb_result
changed_when: false

- name: "gather_jenkins_facts : set jenkins csrf crumb."
set_fact:
jenkins_facts_csrf_crumb: "{{ _jenkins_facts_csrf_crumb_result.json.crumb }}"
jenkins_facts_cookie: "{{ _jenkins_facts_csrf_crumb_result.set_cookie | default(None) }}"
- name: "gather_jenkins_facts : set jenkins csrf crumb."
set_fact:
jenkins_facts_csrf_crumb: "{{ _jenkins_facts_csrf_crumb_result.json.crumb }}"
jenkins_facts_cookie: "{{ _jenkins_facts_csrf_crumb_result.set_cookie | default(None) }}"

when: jenkins_facts_csrf_enabled | bool

Expand Down
3 changes: 2 additions & 1 deletion tasks/main.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
- name: check if jenkins is running.
uri:
url: "{{ jenkins_facts_jenkins_base_url }}"
Expand All @@ -12,4 +13,4 @@
when: _jenkins_facts_jenkins_result.x_jenkins is not defined

- name: gather jenkins facts
include_tasks: gather_jenkins_facts.yml
include_tasks: gather_jenkins_facts.yml
2 changes: 2 additions & 0 deletions tests/requirements.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
[]
3 changes: 2 additions & 1 deletion tests/test.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
- name: test role syntax
hosts: test
roles:
- ansible-jenkins-facts
- wcm_io_devops.jenkins_facts

0 comments on commit 71565b3

Please sign in to comment.