diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 805d411..dda7306 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -1,8 +1,7 @@ name: Main workflow on: [push, pull_request] jobs: - run: - name: Run + build: runs-on: ${{ matrix.operating-system }} strategy: matrix: @@ -10,48 +9,77 @@ jobs: steps: - name: Checkout uses: actions/checkout@v2 - - - name: Setup Node.js 12.x + - name: Setup Node.js 12 uses: actions/setup-node@v1 with: node-version: 12.x - - name: npm install run: npm install - - name: Lint run: npm run format-check - - name: npm test run: npm test - run-with-proxy: - name: Run with proxy - runs-on: ubuntu-latest - services: - squid: - image: dakale/squid - ports: ['3128:3128'] - options: '--health-cmd "exit 0" --health-interval 3s' - env: - http_proxy: http://localhost:3128 - https_proxy: http://localhost:3128 + + test: + runs-on: ${{ matrix.operating-system }} + strategy: + matrix: + operating-system: [ubuntu-latest, windows-latest] steps: - - name: Block non proxied traffic - run: | - echo "127.0.0.0 registry.npm.js nodejs.org github.com api.github.com download.java.net static.azul.com" | sudo tee -a /etc/hosts - name: Checkout uses: actions/checkout@v2 - - - name: Setup Node.js 12.x - uses: actions/setup-node@v1 + - name: Clear tool cache + if: runner.os != 'windows' + run: mv "${{ runner.tool_cache }}" "${{ runner.tool_cache }}.old" + - name: Clear tool cache (Windows) + if: runner.os == 'windows' + run: move "${{ runner.tool_cache }}" "${{ runner.tool_cache }}.old" + - name: Setup Java 13 + uses: ./ with: - node-version: 12.x + java-version: 13.0.2 + - name: Verify Java 13 + if: runner.os != 'windows' + run: __tests__/verify-java.sh 13.0.2 + - name: Verify Java 13 (Windows) + if: runner.os == 'windows' + run: __tests__/verify-java.ps1 13.0.2 - - name: npm install - run: npm install + test-proxy: + runs-on: ubuntu-latest + container: + image: ubuntu:latest + options: --dns 127.0.0.1 + services: + squid-proxy: + image: datadog/squid:latest + ports: + - 3128:3128 + env: + https_proxy: http://squid-proxy:3128 + steps: + - uses: actions/checkout@v2 + - name: Clear tool cache + run: rm -rf $RUNNER_TOOL_CACHE/* + - name: Setup Java 13 + uses: ./ + with: + java-version: 13.0.2 + - name: Verify Java 13 + run: __tests__/verify-java.sh 13.0.2 - - name: Lint - run: npm run format-check - - - name: npm test - run: npm test + test-bypass-proxy: + runs-on: ubuntu-latest + env: + https_proxy: http://no-such-proxy:3128 + no_proxy: github.com,static.azul.com + steps: + - uses: actions/checkout@v2 + - name: Clear tool cache + run: rm -rf $RUNNER_TOOL_CACHE/* + - name: Setup Java 13 + uses: ./ + with: + java-version: 13.0.2 + - name: Verify Java 13 + run: __tests__/verify-java.sh 13.0.2 diff --git a/__tests__/verify-java.ps1 b/__tests__/verify-java.ps1 new file mode 100644 index 0000000..9f675c8 --- /dev/null +++ b/__tests__/verify-java.ps1 @@ -0,0 +1,11 @@ +if (!$args.Count -or !$args[0]) +{ + throw "Must supply java version argument" +} + +$java_version = & cmd.exe /c "java -version 2>&1" | Out-String +Write-Host "Found java version: $java_version" +if (!$java_version.Contains($args[0])) +{ + throw "Unexpected version" +} diff --git a/__tests__/verify-java.sh b/__tests__/verify-java.sh new file mode 100755 index 0000000..f34aba5 --- /dev/null +++ b/__tests__/verify-java.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +if [ -z "$1" ]; then + echo "Must supply java version argument" + exit 1 +fi + +java_version="$(java -version 2>&1)" +echo "Found java version: $java_version" +if [ -z "$(echo $java_version | grep --fixed-strings $1)" ]; then + echo "Unexpected version" + exit 1 +fi