summaryrefslogtreecommitdiffstats
path: root/ansible_collections/purestorage/fusion/.github
diff options
context:
space:
mode:
Diffstat (limited to 'ansible_collections/purestorage/fusion/.github')
-rw-r--r--ansible_collections/purestorage/fusion/.github/CONTRIBUTING.md19
-rw-r--r--ansible_collections/purestorage/fusion/.github/ISSUE_TEMPLATE/bug_report.md38
-rw-r--r--ansible_collections/purestorage/fusion/.github/ISSUE_TEMPLATE/feature_request.md20
-rw-r--r--ansible_collections/purestorage/fusion/.github/pull_request_template.md25
-rw-r--r--ansible_collections/purestorage/fusion/.github/workflows/ansible-lint.yaml10
-rw-r--r--ansible_collections/purestorage/fusion/.github/workflows/black.yaml11
-rw-r--r--ansible_collections/purestorage/fusion/.github/workflows/create-release.yaml117
-rw-r--r--ansible_collections/purestorage/fusion/.github/workflows/main.yml66
-rw-r--r--ansible_collections/purestorage/fusion/.github/workflows/stale.yml19
9 files changed, 325 insertions, 0 deletions
diff --git a/ansible_collections/purestorage/fusion/.github/CONTRIBUTING.md b/ansible_collections/purestorage/fusion/.github/CONTRIBUTING.md
new file mode 100644
index 000000000..a9054d18c
--- /dev/null
+++ b/ansible_collections/purestorage/fusion/.github/CONTRIBUTING.md
@@ -0,0 +1,19 @@
+# WELCOME TO PURE STORAGE FUSION ANSIBLE COLLECTION GITHUB
+
+Hi! Nice to see you here!
+
+## QUESTIONS ?
+
+The GitHub issue tracker is not the best place for questions for various reasons, but the [mailing list](mailto:pure-ansible-team@purestorage.com) is a very helpful places for those things.
+
+## CONTRIBUTING ?
+
+By contributing you agree that these contributions are your own (or approved by your employer) and you grant a full, complete, irrevocable copyright license to all users and developers of the project, present and future, pursuant to the license of the project.
+
+## BUG TO REPORT ?
+
+You can report bugs or make enhancement requests at the [Ansible GitHub issue page](http://github.com/Pure-Storage-Ansible/Fusion-Collection/issues/new/choose) by filling out the issue template that will be presented.
+
+Also please make sure you are testing on the latest released version of Ansible or the development branch; see the [Installation Guide](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) for details.
+
+Thanks!
diff --git a/ansible_collections/purestorage/fusion/.github/ISSUE_TEMPLATE/bug_report.md b/ansible_collections/purestorage/fusion/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 000000000..dd84ea782
--- /dev/null
+++ b/ansible_collections/purestorage/fusion/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,38 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Desktop (please complete the following information):**
+ - OS: [e.g. iOS]
+ - Browser [e.g. chrome, safari]
+ - Version [e.g. 22]
+
+**Smartphone (please complete the following information):**
+ - Device: [e.g. iPhone6]
+ - OS: [e.g. iOS8.1]
+ - Browser [e.g. stock browser, safari]
+ - Version [e.g. 22]
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/ansible_collections/purestorage/fusion/.github/ISSUE_TEMPLATE/feature_request.md b/ansible_collections/purestorage/fusion/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 000000000..bbcbbe7d6
--- /dev/null
+++ b/ansible_collections/purestorage/fusion/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,20 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/ansible_collections/purestorage/fusion/.github/pull_request_template.md b/ansible_collections/purestorage/fusion/.github/pull_request_template.md
new file mode 100644
index 000000000..27079cb18
--- /dev/null
+++ b/ansible_collections/purestorage/fusion/.github/pull_request_template.md
@@ -0,0 +1,25 @@
+##### SUMMARY
+<!--- Describe the change below, including rationale and design decisions -->
+
+<!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue -->
+
+##### ISSUE TYPE
+<!--- Pick one below and delete the rest -->
+- Bugfix Pull Request
+- Docs Pull Request
+- Feature Pull Request
+- New Module Pull Request
+- New Role Pull Request
+
+##### COMPONENT NAME
+<!--- Write the short name of the module, plugin, task or feature below -->
+
+##### ADDITIONAL INFORMATION
+<!--- Include additional information to help people understand the change here -->
+<!--- A step-by-step reproduction of the problem is helpful if there is no related issue -->
+- All new PRs must include a changelog fragment
+- Details of naming convention and format can be found [here](https://docs.ansible.com/ansible/latest/community/development_process.html#creating-a-changelog-fragment)
+<!--- Paste verbatim command output below, e.g. before and after your change -->
+```paste below
+
+```
diff --git a/ansible_collections/purestorage/fusion/.github/workflows/ansible-lint.yaml b/ansible_collections/purestorage/fusion/.github/workflows/ansible-lint.yaml
new file mode 100644
index 000000000..0b2102184
--- /dev/null
+++ b/ansible_collections/purestorage/fusion/.github/workflows/ansible-lint.yaml
@@ -0,0 +1,10 @@
+name: Ansible Lint # feel free to pick your own name
+on: [push, pull_request]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Run ansible-lint
+ uses: ansible-community/ansible-lint-action@main
diff --git a/ansible_collections/purestorage/fusion/.github/workflows/black.yaml b/ansible_collections/purestorage/fusion/.github/workflows/black.yaml
new file mode 100644
index 000000000..68061652a
--- /dev/null
+++ b/ansible_collections/purestorage/fusion/.github/workflows/black.yaml
@@ -0,0 +1,11 @@
+name: Black
+
+on: [push, pull_request]
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-python@v3
+ - uses: psf/black@stable
diff --git a/ansible_collections/purestorage/fusion/.github/workflows/create-release.yaml b/ansible_collections/purestorage/fusion/.github/workflows/create-release.yaml
new file mode 100644
index 000000000..25725c15d
--- /dev/null
+++ b/ansible_collections/purestorage/fusion/.github/workflows/create-release.yaml
@@ -0,0 +1,117 @@
+name: Release Collection
+
+on: workflow_dispatch
+jobs:
+ create_github_release:
+ runs-on: ubuntu-latest
+ environment: fusion-env
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Get version from galaxy.yml
+ run: |
+ RELEASE_VERSION=$(grep 'version:' galaxy.yml | awk '{print $2}')
+ echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV
+
+ - name: Check if tag exists
+ env:
+ GITHUB_TOKEN: ${{ github.TOKEN }}
+ run: |
+ trap "exit 0" EXIT
+ response=$(gh api -H "Accept: application/vnd.github+json" /repos/${{ github.repository }}/git/ref/tags/$RELEASE_VERSION)
+ if [[ "$response" == *"$RELEASE_VERSION"* ]]; then
+ trap "exit 1" EXIT
+ echo "Error: Tag $RELEASE_VERSION already exists"
+ exit 1
+ fi
+
+ - name: Extract changelog
+ run: |
+ awk -v version="$RELEASE_VERSION" '
+ BEGIN { targetVersionFound = 0; previousVersionFound = 0 }
+ {
+ if (match($0, "^v"version) > 0) {
+ targetVersionFound = 1;
+ } else if (targetVersionFound && match($0, "^v") > 0) {
+ previousVersionFound = 1;
+ }
+
+ if (targetVersionFound && !previousVersionFound) {
+ print $0;
+ }
+ }
+ ' CHANGELOG.rst > changelog
+
+ - name: Create a release
+ env:
+ GITHUB_TOKEN: ${{ github.TOKEN }}
+ run: gh release create "${{ env.RELEASE_VERSION }}" --title "Fusion Collection v${{ env.RELEASE_VERSION }}" --notes-file changelog
+
+ publish_collection_to_galaxy:
+ runs-on: ubuntu-latest
+ environment: fusion-env
+ needs: create_github_release
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Get version from galaxy.yml
+ run: |
+ RELEASE_VERSION=$(grep 'version:' galaxy.yml | awk '{print $2}')
+ echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV
+
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: "3.x"
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install ansible ansible-lint yamllint
+
+ - name: Build Ansible Collection
+ run: ansible-galaxy collection build
+
+ - name: Release to Ansible Galaxy
+ run: ansible-galaxy collection publish --api-key=${{ secrets.ANSIBLE_GALAXY_API_KEY }} ./purestorage-fusion-${{ env.RELEASE_VERSION }}.tar.gz
+
+ publish_collection_to_automation_hub:
+ runs-on: ubuntu-latest
+ environment: fusion-env
+ needs: create_github_release
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Get version from galaxy.yml
+ run: |
+ RELEASE_VERSION=$(grep 'version:' galaxy.yml | awk '{print $2}')
+ echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV
+
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: "3.x"
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install ansible ansible-lint yamllint
+
+ - name: Build Ansible Collection
+ run: ansible-galaxy collection build
+ - name: Create config for Automation Hub
+ run: |
+ cat << EOF > ansible.cfg
+ [galaxy]
+ server_list = rh_automation_hub
+ [galaxy_server.rh_automation_hub]
+ url=${{ secrets.RH_AUTOMATION_HUB_URL }}
+ auth_url=${{ secrets.RH_SSO_URL }}
+ token=${{ secrets.RH_AUTOMATION_HUB_TOKEN }}
+ EOF
+
+ - name: Release to Automation Hub
+ run: ansible-galaxy collection publish ./purestorage-fusion-${{ env.RELEASE_VERSION }}.tar.gz
diff --git a/ansible_collections/purestorage/fusion/.github/workflows/main.yml b/ansible_collections/purestorage/fusion/.github/workflows/main.yml
new file mode 100644
index 000000000..da0a69969
--- /dev/null
+++ b/ansible_collections/purestorage/fusion/.github/workflows/main.yml
@@ -0,0 +1,66 @@
+name: Pure Storage Ansible CI
+
+on:
+ pull_request:
+ push:
+ schedule:
+ - cron: '25 10 * * *'
+
+jobs:
+ build:
+ name: Build purefusion on Ansible ${{ matrix.ansible }} (Python ${{ matrix.python-version }})
+ runs-on: ubuntu-20.04
+ strategy:
+ matrix:
+ ansible:
+ - stable-2.11
+ - stable-2.12
+ - stable-2.13
+ - stable-2.14
+ - stable-2.15
+ - devel
+ python-version:
+ - 3.8
+ - 3.9
+ - "3.10"
+ - "3.11"
+ exclude:
+ - python-version: "3.11"
+ ansible: stable-2.11
+ - python-version: "3.11"
+ ansible: stable-2.12
+ - python-version: "3.11"
+ ansible: stable-2.13
+ - python-version: "3.10"
+ ansible: stable-2.11
+ - python-version: 3.8
+ ansible: stable-2.14
+ - python-version: 3.8
+ ansible: stable-2.15
+ - python-version: 3.8
+ ansible: devel
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v3
+
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v3
+ with:
+ python-version: ${{ matrix.python-version }}
+
+ - name: Install dependencies
+ run: |
+ python${{ matrix.python }} -m pip install --upgrade pip
+ python${{ matrix.python }} -m pip install https://github.com/ansible/ansible/archive/${{ matrix.ansible }}.tar.gz --disable-pip-version-check
+ python${{ matrix.python }} -m pip install purefusion pytest
+
+ - name: Run sanity tests
+ run: |
+ pwd
+ mkdir -p ansible_collections/purestorage/fusion
+ rsync -av . ansible_collections/purestorage/fusion --exclude ansible_collection/purestorage/fusion
+ cd ansible_collections/purestorage/fusion
+ ansible-test sanity -v --color --python ${{ matrix.python-version }} --docker
+
+ - name: Run unit tests
+ run: python -m pytest --import-mode=append tests
diff --git a/ansible_collections/purestorage/fusion/.github/workflows/stale.yml b/ansible_collections/purestorage/fusion/.github/workflows/stale.yml
new file mode 100644
index 000000000..7bbc0505b
--- /dev/null
+++ b/ansible_collections/purestorage/fusion/.github/workflows/stale.yml
@@ -0,0 +1,19 @@
+name: Mark stale issues and pull requests
+
+on:
+ schedule:
+ - cron: "0 0 * * *"
+
+jobs:
+ stale:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/stale@v1
+ with:
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
+ stale-issue-message: 'Stale issue message'
+ stale-pr-message: 'Stale pull request message'
+ stale-issue-label: 'no-issue-activity'
+ stale-pr-label: 'no-pr-activity'