🛡️ Sentinel: [CRITICAL] Fix SSRF in image cache #820
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: CI | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: '1.24.1' | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20' | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y make ffmpeg | |
| npm install | |
| - name: Build project | |
| run: make build | |
| test: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: '1.24.1' | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20' | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y make ffmpeg | |
| npm install | |
| - name: Run tests | |
| run: make test | |
| lint: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| continue-on-error: true | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: '1.24.1' | |
| - name: Run golangci-lint | |
| run: make lint | |
| snap-test: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Set up Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: '1.24.1' | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20' | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y make ffmpeg qemu-kvm | |
| npm install | |
| sudo snap install snapcraft --classic | |
| - name: Build the snap | |
| run: sudo make snap | |
| - name: Install the snap | |
| run: sudo snap install --dangerous xteve*.snap | |
| - name: Wait for service startup | |
| run: sleep 10 | |
| - name: Check service status and dump logs | |
| run: | | |
| echo "--- Checking xteve service status ---" | |
| snap services xteve | |
| echo "--- Dumping xteve service logs ---" | |
| sudo snap logs xteve || echo "No logs yet or logs not accessible" | |
| echo "--- Verifying xteve service is active ---" | |
| snap services xteve | grep -E "^xteve\.xteve\s+.*active" | |
| e2e-test: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: '1.24.1' | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20' | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y make ffmpeg | |
| npm install | |
| - name: Run E2E test | |
| run: make e2e-test | |
| otel-test: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: '1.24.1' | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20' | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y make ffmpeg | |
| npm install | |
| - name: Run OTEL test | |
| run: make otel-test | |
| playwright-test: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: '1.24.1' | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20' | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y make ffmpeg | |
| npm install | |
| - name: Install Playwright Browsers | |
| run: npx playwright install --with-deps | |
| - name: Run app | |
| run: | | |
| make build | |
| ./bin/xteve -port=34400 & | |
| - name: Run Playwright tests | |
| run: npx playwright test | |
| timestamp-test: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Go | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: '1.24.1' | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20' | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y make ffmpeg fuse3 rclone | |
| npm install | |
| - name: Run timestamp test | |
| run: make timestamp-test | |
| format: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '20' | |
| - name: Install dependencies | |
| run: npm install | |
| - name: Check formatting | |
| run: make format-check |