Skip to content

Commit

Permalink
CI: Updated GitHub Actions workflow for continuous integration
Browse files Browse the repository at this point in the history
This commit introduces a GitHub Actions workflow for continuous integration (CI) to automate the testing and validation of the Cloudflare UFW updater script.

The workflow performs the following actions:

-   **Runs  `shellcheck`:**  Analyzes the script for potential errors and style issues.
-   **Executes basic tests:**  Installs dependencies, mocks the  `ufw`  command to avoid making actual changes to the firewall, and runs the script with different arguments.

This CI workflow helps to ensure the quality and reliability of the script by automatically catching potential issues before they are merged into the main branch.

**Benefits:**

-   **Early detection of errors:**  Identifies potential problems early in the development process.
-   **Improved code quality:**  Enforces coding standards and best practices.
-   **Increased confidence in changes:**  Provides assurance that changes do not introduce regressions.
  • Loading branch information
thomasvincent authored Dec 27, 2024
1 parent 6f901fe commit 76f2fc3
Showing 1 changed file with 32 additions and 22 deletions.
54 changes: 32 additions & 22 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,41 @@
name: Test
name: CI

on:
push:
branches:
- main
branches: [ main ]
pull_request:
branches:
- main
branches: [ main ]

jobs:
test:
build:

runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Set up BATS
run: |
sudo apt-get update
sudo apt-get install -y bats
- name: Set up test environment
run: |
sudo apt-get install -y ufw curl
- name: Run tests
run: |
cd tests
sudo bats cloudflare_ufw_updater.bats
- uses: actions/checkout@v3

- name: Set up Bash
uses: actions/setup-bash@v3

- name: Run shellcheck
uses: ludeeus/action-shellcheck@master
with:
severity: error

- name: Run tests
run: |
# Install dependencies (if any)
sudo apt-get update
sudo apt-get install -y ufw curl
# Mock UFW for testing
sudo mv /usr/sbin/ufw /usr/sbin/ufw.real
sudo touch /usr/sbin/ufw
sudo chmod +x /usr/sbin/ufw
# Run the script with test arguments
./cloudflare-ufw-updater.sh
./cloudflare-ufw-updater.sh --restore
# Restore original UFW
sudo mv /usr/sbin/ufw.real /usr/sbin/ufw

0 comments on commit 76f2fc3

Please sign in to comment.