From 76f2fc3c818ef27ff8a97e5a38e170453b8a0e46 Mon Sep 17 00:00:00 2001 From: Thomas Vincent Date: Fri, 27 Dec 2024 00:37:18 -0800 Subject: [PATCH] CI: Updated GitHub Actions workflow for continuous integration 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. --- .github/workflows/test.yml | 54 ++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6d13c01..a5e0262 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -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 \ No newline at end of file + - 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