Spaces:
Build error
Build error
| name: tests | |
| on: | |
| push: | |
| branches: [master, main] | |
| tags-ignore: ['**'] | |
| pull_request: {} | |
| concurrency: | |
| group: ${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: # Docs: <https://git.io/JvxXE> | |
| gitleaks: | |
| name: Gitleaks | |
| runs-on: ubuntu-20.04 | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: {fetch-depth: 0} | |
| - uses: gacts/gitleaks@v1 | |
| build-image: | |
| name: Build docker image | |
| runs-on: ubuntu-20.04 | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Build docker image | |
| run: docker build -f ./Dockerfile --tag 3proxy:local . | |
| - name: Save docker image | |
| run: docker save 3proxy:local > ./docker-image.tar | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v3 | |
| with: | |
| name: docker-image | |
| path: ./docker-image.tar | |
| retention-days: 1 | |
| try-to-use: | |
| name: Build and use docker image (auth ${{ matrix.auth }}) | |
| runs-on: ubuntu-20.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| auth: [yes, no] | |
| needs: [build-image] | |
| steps: | |
| - name: Download built docker image | |
| uses: actions/download-artifact@v3 | |
| with: | |
| name: docker-image | |
| path: .artifact | |
| - name: Prepare image to run | |
| working-directory: .artifact | |
| run: docker load < docker-image.tar | |
| - name: Start server without auth setup | |
| if: matrix.auth != 'yes' | |
| run: docker run --rm -d -p "3128:3128/tcp" -p "1080:1080/tcp" 3proxy:local | |
| - name: Start server with auth setup | |
| if: matrix.auth == 'yes' | |
| run: docker run --rm -d -p "3128:3128/tcp" -p "1080:1080/tcp" -e "PROXY_LOGIN=evil" -e "PROXY_PASSWORD=live" -e 'EXTRA_ACCOUNTS={"foo":"bar"}' 3proxy:local | |
| - name: Pause | |
| run: sleep 3 | |
| - name: Try to use HTTP proxy | |
| if: matrix.auth != 'yes' | |
| run: | | |
| curl -v --fail \ | |
| --proxy http://127.0.0.1:3128 \ | |
| --connect-timeout 3 \ | |
| --max-time 3 \ | |
| https://www.cloudflare.com/robots.txt | |
| - name: Try to use SOCKS proxy | |
| if: matrix.auth != 'yes' | |
| run: | | |
| curl -v --fail \ | |
| --proxy socks5://127.0.0.1:1080 \ | |
| --connect-timeout 3 \ | |
| --max-time 3 \ | |
| https://www.cloudflare.com/robots.txt | |
| - name: Try to use HTTP proxy (with auth) | |
| if: matrix.auth == 'yes' | |
| run: | | |
| curl -v --fail \ | |
| --proxy http://127.0.0.1:3128 \ | |
| --proxy-user evil:live \ | |
| --connect-timeout 3 \ | |
| --max-time 3 \ | |
| https://www.cloudflare.com/robots.txt | |
| - name: Try to use HTTP proxy (with auth, extra user) | |
| if: matrix.auth == 'yes' | |
| run: | | |
| curl -v --fail \ | |
| --proxy http://127.0.0.1:3128 \ | |
| --proxy-user foo:bar \ | |
| --connect-timeout 3 \ | |
| --max-time 3 \ | |
| https://www.cloudflare.com/robots.txt | |
| - name: Try to use SOCKS proxy (with auth) | |
| if: matrix.auth == 'yes' | |
| run: | | |
| curl -v --fail \ | |
| --proxy socks5://127.0.0.1:1080 \ | |
| --proxy-user evil:live \ | |
| --connect-timeout 3 \ | |
| --max-time 3 \ | |
| https://www.cloudflare.com/robots.txt | |
| - name: Stop container | |
| run: docker stop $(docker ps -a --filter ancestor=3proxy:local -q) | |