Skip to content

chore: release v1.2.0 #15

chore: release v1.2.0

chore: release v1.2.0 #15

Workflow file for this run

name: ci
concurrency:
cancel-in-progress: ${{ ! startsWith(github.ref, 'refs/tags/v') }}
group: ci-${{ github.ref_name }}-${{ github.event_name }}
on:
push:
branches:
- main
tags:
- "v*"
env:
ANSIBLE_FORCE_COLOR: "1"
PY_COLORS: "1"
jobs:
trivy:
if: github.event_name == 'push' || github.event_name == 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
scan-type:
- fs
- config
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Cache trivy db
uses: actions/cache@v4
with:
path: ~/.cache/trivy
key: ${{ runner.os }}-trivy-db-${{ hashFiles('**/trivy.yaml') }}
- name: Run Trivy vulnerability scanner in fs mode
uses: aquasecurity/trivy-action@master
with:
format: sarif
ignore-unfixed: true
output: trivy-results.sarif
scan-ref: .
scan-type: ${{ matrix.scan-type }}
severity: CRITICAL,HIGH
trivy-config: trivy.yaml
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: "trivy-results.sarif"
test:
if: github.event_name == 'push' || github.event_name == 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: read
services:
prometheus:
image: prom/prometheus:v2.54.1
ports:
- 9090:9090
env:
VMAGENT_REMOTE_WRITE_URL: http://localhost:9090/api/v1/write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check ansible
run: ansible --version
- name: Prepare localhost inventory
run: |
cat << 'EOF' > localhost.yml
all:
hosts:
localhost:
ansible_connection: local
EOF
- name: Ansible playbook
run: ansible-playbook playbook.yml -i localhost.yml
publish:
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Build collection
run: |
ansible-galaxy collection build
- name: Publish to Ansible Galaxy
run: |
namespace=$(yq -r .namespace galaxy.yml)
name=$(yq -r .name galaxy.yml)
version=$(yq -r .version galaxy.yml)
if [ "$version" != "${{ github.ref_name }}" ]; then
echo "Version in galaxy.yml ($version) does not match git tag (${{ github.ref_name }})"
exit 1
fi
ansible-galaxy collection publish $namespace-$name-$version.tar.gz --token ${{ secrets.ANSIBLE_GALAXY_TOKEN }}
- name: Generate a changelog
uses: orhun/git-cliff-action@v4
id: git-cliff
with:
config: cliff.toml
args: --verbose
env:
OUTPUT: CHANGELOG.md
- name: Create github release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release create ${{ github.ref_name }} -t ${{ github.ref_name }} -F CHANGELOG.md