diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c40be66a..b20acdfc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: --health-timeout 5s --health-retries 5 co_execenv_java: - image: openhpi/co_execenv_java:8 + image: openhpi/co_execenv_java:8-antlr steps: - name: Configure Docker host diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 77c3b3ee..e7fe57cc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -43,7 +43,7 @@ rspec: - rake db:schema:load - rake db:migrate - docker login -u "${DOCKERHUB_USER}" -p "${DOCKERHUB_PASS}" - - docker pull openhpi/co_execenv_java:8 + - docker pull openhpi/co_execenv_java:8-antlr script: - rspec --format progress coverage: '/\(\d+.\d+\%\) covered/' diff --git a/spec/controllers/execution_environments_controller_spec.rb b/spec/controllers/execution_environments_controller_spec.rb index 3d4a3896..2e3de1d3 100644 --- a/spec/controllers/execution_environments_controller_spec.rb +++ b/spec/controllers/execution_environments_controller_spec.rb @@ -9,6 +9,7 @@ describe ExecutionEnvironmentsController do before do allow(controller).to receive(:current_user).and_return(user) allow(controller).to receive(:sync_to_runner_management).and_return(nil) + allow(Runner.strategy_class).to receive(:available_images).and_return([]) end describe 'POST #create' do diff --git a/spec/factories/execution_environment.rb b/spec/factories/execution_environment.rb index c13c2292..26aa002e 100644 --- a/spec/factories/execution_environment.rb +++ b/spec/factories/execution_environment.rb @@ -37,7 +37,7 @@ FactoryBot.define do created_by_teacher default_memory_limit default_cpu_limit - docker_image { 'openhpi/co_execenv_java:8' } + docker_image { 'openhpi/co_execenv_java:8-antlr' } file_type { association :dot_java, user: user } help name { 'Java 8' } diff --git a/spec/features/authorization_spec.rb b/spec/features/authorization_spec.rb index 8200964e..cc8fcb9d 100644 --- a/spec/features/authorization_spec.rb +++ b/spec/features/authorization_spec.rb @@ -3,6 +3,8 @@ require 'rails_helper' describe 'Authorization' do + before { allow(Runner.strategy_class).to receive(:available_images).and_return([]) } + context 'when being an admin' do let(:user) { FactoryBot.create(:admin) } diff --git a/spec/lib/docker_client_spec.rb b/spec/lib/docker_client_spec.rb index 70f56eea..54746d51 100644 --- a/spec/lib/docker_client_spec.rb +++ b/spec/lib/docker_client_spec.rb @@ -14,6 +14,8 @@ describe DockerClient do let(:workspace_path) { WORKSPACE_PATH } before do + docker_image = Docker::Image.new(Docker::Connection.new('http://example.org', {}), 'id' => SecureRandom.hex, 'RepoTags' => [FactoryBot.attributes_for(:java)[:docker_image]]) + allow(described_class).to receive(:find_image_by_tag).and_return(docker_image) described_class.initialize_environment allow(described_class).to receive(:container_creation_options).and_wrap_original do |original_method, *args, &block| result = original_method.call(*args, &block) @@ -69,6 +71,10 @@ describe DockerClient do describe '.create_container' do let(:create_container) { described_class.create_container(execution_environment) } + after do + FileUtils.rm_rf(workspace_path) + end + it 'uses the correct Docker image' do expect(described_class).to receive(:find_image_by_tag).with(execution_environment.docker_image).and_call_original container = create_container @@ -425,7 +431,7 @@ describe DockerClient do it "returns the container's output" do expect(send_command[:stderr]).to be_blank - expect(send_command[:stdout]).to start_with('root') + expect(send_command[:stdout]).to start_with('user') end it 'returns a corresponding status' do