diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..e0fa534 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,55 @@ +name: CI + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +permissions: + contents: read + +jobs: + smoke-test: + name: Smoke Tests + runs-on: ubuntu-24.04 + + steps: + - name: Checkout code + uses: actions/checkout@v5 + + - name: Run software installer in Docker + run: | + docker run --rm --privileged \ + -v $PWD:/workspace -w /workspace \ + -v /var/run/docker.sock:/var/run/docker.sock \ + ubuntu:24.04 \ + bash -c "apt-get update && apt-get install -y sudo docker.io && \ + useradd -m -s /bin/bash testuser && \ + usermod -aG sudo testuser && \ + usermod -aG docker testuser && \ + echo 'testuser ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \ + chown -R testuser:testuser /workspace && \ + su - testuser -c 'cd /workspace && ./src/installer/install.sh'" + + - name: Run software upgrade in Docker + run: | + docker run --rm --privileged \ + -v $PWD:/workspace -w /workspace \ + -v /var/run/docker.sock:/var/run/docker.sock \ + ubuntu:24.04 \ + bash -c "apt-get update && apt-get install -y sudo docker.io && \ + useradd -m -s /bin/bash testuser && \ + usermod -aG sudo testuser && \ + usermod -aG docker testuser && \ + echo 'testuser ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \ + chown -R testuser:testuser /workspace && \ + su - testuser -c 'cd /workspace && ./src/installer/upgrade.sh'" + + - name: Run dotfiles installer in Docker + run: | + docker run --rm -v $PWD:/workspace -w /workspace \ + ubuntu:24.04 \ + bash -c "useradd -m -s /bin/bash testuser && \ + chown -R testuser:testuser /workspace && \ + su - testuser -c 'cd /workspace && ./src/dotfiles/install.sh'"