fix: corrected path in ci-cd #127
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: NetDevOps CI/CD | |
| on: | |
| push: | |
| paths: | |
| - 'playbooks/**' | |
| - 'configs/**' | |
| - 'inventory/**' | |
| - 'ansible.cfg' | |
| - 'requirements.yml' | |
| - 'test/**' | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| jobs: | |
| Validate: | |
| runs-on: self-hosted | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v4 | |
| # - name: Setup Python | |
| # uses: actions/setup-python@v5 | |
| # with: | |
| # python-version: '3.13' | |
| - name: Sync dependencies with uv | |
| run: | | |
| uv python install 3.14 | |
| uv sync --python 3.14 | |
| - name: Ansible Syntax Check | |
| run: | | |
| uv run ansible-playbook --syntax-check playbooks/*.yml -i inventory/lab.yml | |
| Backup: | |
| runs-on: self-hosted | |
| env: | |
| CISCO_USER: ${{ secrets.CISCO_USER }} | |
| CISCO_PASS: ${{ secrets.CISCO_PASS }} | |
| needs: Validate | |
| steps: | |
| - name: Checkout Repo | |
| uses: actions/checkout@v4 | |
| - name: Sync Dependencies With uv | |
| run: | | |
| uv sync | |
| - name: Backup Configs | |
| run: | | |
| uv run ansible-playbook -i inventory/lab.yml playbooks/infra/01_config_backup.yml | |
| - name: Copy Backups | |
| run: | | |
| cp -v backups/* ~/projects/netdevops/backups/ | |
| Deploy: | |
| runs-on: self-hosted | |
| env: | |
| CISCO_USER: ${{ secrets.CISCO_USER }} | |
| CISCO_PASS: ${{ secrets.CISCO_PASS }} | |
| needs: Backup | |
| steps: | |
| - name: Checkout Repo | |
| uses: actions/checkout@v4 | |
| - name: Sync Dependencies With uv | |
| run: | | |
| uv sync | |
| - name: Deploy Changes | |
| run: | | |
| uv run ansible-playbook -i inventory/lab.yml playbooks/02_ntp_config.yml | |
| Tests: | |
| runs-on: self-hosted | |
| env: | |
| CISCO_USER: ${{ secrets.CISCO_USER }} | |
| CISCO_PASS: ${{ secrets.CISCO_PASS }} | |
| needs: Deploy | |
| steps: | |
| - name: Checkout Repo | |
| uses: actions/checkout@v4 | |
| - name: Sync Dependencies With uv | |
| run: | | |
| uv sync | |
| - name: Export env vars for pyATS | |
| run: | | |
| echo "CISCO_USER=${CISCO_USER}" >> $GITHUB_ENV | |
| echo "CISCO_PASS=${CISCO_PASS}" >> $GITHUB_ENV | |
| - name: Run pyATS Tests | |
| run: | | |
| uv run pyats run job tests/job.py --no-mail --no-archive |