diff --git a/.github/workflows/workflows.yaml b/.github/workflows/workflows.yaml new file mode 100644 index 00000000..9632d64f --- /dev/null +++ b/.github/workflows/workflows.yaml @@ -0,0 +1,51 @@ +name: Tests + +on: [push] + +jobs: + tests: + runs-on: ubuntu-latest + strategy: + matrix: + java: [ 8, 11 ] + kubernetes: [ 'v1.20.1', 'v1.19.6', 'v1.18.14', 'v1.17.16', 'v1.16.14'] + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK + uses: actions/setup-java@v1 + with: + java-version: ${{ matrix.java }} + - name: Cache Maven packages + uses: actions/cache@v2 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 + - name: Setup Minikube + uses: manusa/actions-setup-minikube@v2.3.0 + with: + minikube version: 'v1.16.0' + kubernetes version: ${{ matrix.kubernetes }} + - name: Setup Docker + run: sudo apt-get -qq -y install conntrack socat ; nohup socat TCP-LISTEN:2375,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock & + - name: Pull Image + run: docker pull openanalytics/shinyproxy-demo:latest + - name: Build with Maven + run: mvn -U clean install -DskipTests + - name: Run Tests + run: mvn test + + dependency: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Run Dependency Check + run: mvn -Powasp-dependency-check verify -DskipTests + - name: Archive code coverage results + uses: actions/upload-artifact@v2 + with: + name: dependency-check-report + path: target/dependency-check-report.html + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index df44db92..00000000 --- a/.travis.yml +++ /dev/null @@ -1,45 +0,0 @@ -# loosely based on https://github.com/lilic/travis-minikube -sudo: required -dist: xenial -language: java - -env: - global: - - CHANGE_MINIKUBE_NONE_USER=true - - MINIKUBE_WANTUPDATENOTIFICATION=false - - MINIKUBE_WANTREPORTERRORPROMPT=false - - MINIKUBE_HOME=$HOME - - CHANGE_MINIKUBE_NONE_USER=true - - KUBECONFIG=$HOME/.kube/config - -cache: - directories: - - "$HOME/.cache" - -services: - - docker - -before_install: -- docker pull openanalytics/shinyproxy-demo -- sudo apt-get -qq -y install conntrack socat - -before_script: -# Download kubectl, which is a requirement for using minikube. -- curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.18.9/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/ -# Download minikube. -- curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.14.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ -- mkdir -p $HOME/.kube $HOME/.minikube -- touch $KUBECONFIG -- sudo minikube start --profile=minikube --vm-driver=none --kubernetes-version=v1.18.9 -- minikube update-context --profile=minikube -- "sudo chown -R travis: /home/travis/.minikube/" -- eval "$(minikube docker-env --profile=minikube)" && export DOCKER_CLI='docker' - - -script: -# Following is just to demo that the kubernetes cluster works. -- kubectl cluster-info -# Wait for kube-dns to be ready. -- JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}'; until kubectl -n kube-system get pods -lk8s-app=kube-dns -o jsonpath="$JSONPATH" 2>&1 | grep -q "Ready=True"; do sleep 1;echo "waiting for kube-dns to be available"; kubectl get pods --all-namespaces; done -- nohup socat TCP-LISTEN:2375,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock & -- mvn test