diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..0f9ea2aa --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,46 @@ +name: React Planner CI + +on: + push: + +jobs: + build: + name: Install dependencies and build + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "16.20.2" + + - name: Install Yarn + run: npm install --global yarn@1.22.22 + + - name: Install dependencies + run: yarn install --frozen-lockfile --non-interactive + + - name: Build project + run: yarn build + + - name: Smoke test built application + run: | + python3 -m http.server 8080 --directory demo/dist > /tmp/server.log 2>&1 & + server_pid=$! + trap 'kill "$server_pid"' EXIT + + for attempt in 1 2 3 4 5; do + if curl --fail --silent --show-error http://127.0.0.1:8080/ > /dev/null; then + echo "Smoke test passed" + exit 0 + fi + + sleep 1 + done + + echo "Smoke test failed" + cat /tmp/server.log + exit 1