name: CI on: push: branches: - "**" tags: - "!**" schedule: - cron: "31 4 * * 0" jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.10' cache: 'pip' # caching pip dependencies - name: Ensure requirements are installed run: pip install -r requirements.txt - name: Lint with ansible-lint run: ansible-lint -c ".ansible-lint" env: PY_COLORS: '1' ANSIBLE_FORCE_COLOR: '1' - name: Lint with yamllint run: yamllint . env: PY_COLORS: '1' ANSIBLE_FORCE_COLOR: '1' molecule: name: Molecule Test runs-on: ubuntu-latest needs: lint strategy: fail-fast: true matrix: os: [almalinux8, almalinux9] steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.10' cache: 'pip' # caching pip dependencies - name: Ensure requirements are installed run: pip install -r requirements.txt - name: Run Molecule tests. run: molecule test env: PY_COLORS: '1' ANSIBLE_FORCE_COLOR: '1' MOLECULE_DISTRO: ${{ matrix.os }} release: runs-on: ubuntu-latest needs: - lint - molecule steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: '1.22' - name: Install gitea provider for Go Semantic Release run: | mkdir -p .semrel/$(go env GOOS)_$(go env GOARCH)/provider-gitea/${GITEA_PROVIDER_VER}/ && \ wget https://github.com/cybercinch/go-semantic-release-provider-gitea/releases/download/v${GITEA_PROVIDER_VER}/go-semantic-release-provider-gitea_v${GITEA_PROVIDER_VER}_linux_amd64 \ -O .semrel/$(go env GOOS)_$(go env GOARCH)/provider-gitea/${GITEA_PROVIDER_VER}/gitea && \ chmod a+x .semrel/$(go env GOOS)_$(go env GOARCH)/provider-gitea/${GITEA_PROVIDER_VER}/gitea env: GITEA_PROVIDER_VER: 1.0.11 - run: | echo "github repo: ${GITHUB_REPOSITORY}" echo "env vars: $(env)" - uses: go-semantic-release/action@v1 with: custom-arguments: --provider=gitea env: GITEA_TOKEN: ${{ secrets.G_TOKEN }} GITEA_HOST: ${{ secrets.G_SERVER_URL}} - name: ntfy-success-notifications uses: niniyas/ntfy-action@master if: success() with: url: '${{ vars.NTFY_URL }}' title: Workflow success topic: 'ci-status' priority: 4 tags: +1,partying_face,action,successfully,completed details: Workflow has been successfully completed! icon: 'https://styles.redditmedia.com/t5_32uhe/styles/communityIcon_xnt6chtnr2j21.png' image: true - name: ntfy-failed-notifications uses: niniyas/ntfy-action@master if: failure() with: url: '${{ vars.NTFY_URL }}' title: Workflow failed topic: 'ci-status' priority: 5 tags: -1,skull,action,failed details: Workflow has failed! actions: 'default'