问题描述

测试人员想在gitalb上跑 JUnit项目,也就是java代码。

听到这个之后,我当时都懵了,我他妈gitlab的runner是为运行.net core 安装的呀。后来一想,是我错了,我用的是docker,跟什么语言关系不大,只要有docker镜像就行了。

于是开启了疯狂学习java的两小时。

这俩小时产出效率很高,大致做了这件事情,为windows安装java运行环境,安装java 的IDE,熟悉IDE,熟悉java Helloworld的运行过程。写一个CI的Demo。

说一下过程吧

创建java文件 HelloWorld.java

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}

创建 .gitlab-ci.yml,好吧这是从网上抄的。

image: java:latest

stages:
- build
- execute build:
stage: build
script: /usr/lib/jvm/java-8-openjdk-amd64/bin/javac HelloWorld.java
artifacts:
paths:
- HelloWorld.* execute:
stage: execute
script: /usr/lib/jvm/java-8-openjdk-amd64/bin/java HelloWorld

结果根本跑不通。

后来我想了一下,启动一个java容器,然后进入容器里看一看命令java,和javac能不能识别,以及路径在哪里。

启动并进入容器 docker run -it testjava java bash

我试了一下,居然javajavac都可以用。

于是对.gitlab-ci.yml进行了另一番改装

image: java:latest

stages:
- build
- execute build:
stage: build
script: javac HelloWorld.java execute:
stage: execute
script: java HelloWorld

以为终于结束了,结果是我错了。

build 通过了



execute 失败了

于是进行了另一番改装。

image: java:latest

stages:
- execute before_script:
- "javac HelloWorld.java " execute:
stage: execute
script: " java HelloWorld "

终于结束了。

GitLab CI 之 Java HelloWrold的更多相关文章

  1. 手把手详解持续集成之GitLab CI/CD

    一.环境准备 首先需要有一台 GitLab 服务器,然后需要有个项目:这里示例项目以 Spring Boot 项目为例,然后最好有一台专门用来 Build 的机器,实际生产中如果 Build 任务不频 ...

  2. Git Hooks、GitLab CI持续集成以及使用Jenkins实现自动化任务

    Git Hooks.GitLab CI持续集成以及使用Jenkins实现自动化任务 前言 在一个共享项目(或者说多人协同开发的项目)的开发过程中,为有效确保团队成员编码风格的统一,确保部署方式的统一, ...

  3. 【持续集成】GitLab CI + Docker 实现持续集成

    GitLab CI + Docker 实现持续集成 一.持续集成(Continuous Integration, CI)的基本概念 概述 在传统软件的开发中,代码的集成工作通常是在所有人都将工作完成后 ...

  4. Docker Gitlab CI 部署 Spring Boot 项目

    目前在学习这一块的内容,但是可能每个人环境都不同,导致找不到一篇博客能够完全操作下来没有错误的,所以自己也写一下,记录一下整个搭建的过程. Docker 的安装这里就不赘述了,基本上几行命令都可以了, ...

  5. Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目

    在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集 ...

  6. GitLab CI/CD的官译【原】

    CI / CD方法简介 软件开发的持续集成基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性.从新代码的开发到部署,它们需要较少的人为干预甚至根本不需要干预. 它涉及在每次小迭代中不断 ...

  7. GitLab CI/CD 配置

    GitLab CI/CD 配置 概念 持续集成的相关概念,可以看这篇文章 持续集成是什么? - 阮一峰的网络日志 操作示例 创建测试项目 sample-web,然后打开项目的 Runners 配置 找 ...

  8. GitLab CI构建SpringBoot-2.3应用

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  9. spring-boot 2.5.4,nacos 作为配置、服务发现中心,Cloud Native Buildpacks 打包镜像,GitLab CI/CD

    spring-boot 2.5.4,nacos 作为配置.服务发现中心,Cloud Native Buildpacks 打包镜像,GitLab CI/CD 本文主要介绍 Java 通过 Cloud N ...

随机推荐

  1. sed 给文件每行末尾追加相同字符

    给文件file1每行末尾追加字符 ; sed 's/$/;/' file1

  2. python 函数参数的传递(参数带星号的说明) 元组传递 字典传递

    python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...

  3. BaseAction编写:免去一些重复的代码,比如继承ActionSupport和实现ModelDriven接口

    1.BaseAction package com.learning.crm.base; import java.lang.reflect.ParameterizedType; import java. ...

  4. Django url反向解析与路由分发名称空间

    url反向解析 url.py from django.conf.urls import url from django.contrib import admin from app01 import v ...

  5. phonegap 2.9 IOS Xcode 搭建环境

    一:下载phoneGap2.9和安装Xcode5(目前最新版) 选择2.9是因为3.0以上坑爹版本编译神马的要在有网络情况. 二: 下载phonegap后解压到你的指定文件夹中,解压后找到create ...

  6. 【Hibernate学习笔记-6.1】无连接表的N-1关联(单向)

    作者:ssslinppp       1. 摘要 主要讲解N-1关系表的设计,N:从表,1:主表: 从表(N)中使用外键关联到主表(1),单向的: 场景: 许多人(N)可以住在同一个地方(1),知道人 ...

  7. bzoj 4911: [Sdoi2017]切树游戏

    考虑维护原树的lct,在上面dp,由于dp方程特殊,均为异或卷积或加法,计算中可以只使用fwt后的序列 v[w]表示联通子树的最浅点为w,且不选w的splay子树中的点 l[w]表示联通子树的最浅点在 ...

  8. 6-3-1appium iOS

    环境准备 brew install carthage npm i -g ios-deploy brew install libimobiledevice --HEAD brew install ide ...

  9. tomcat 乱码问题

    页面提交都是utf8编码进后台,但是后台入库有些中文数据是正常,有些是乱码,可以完全排除数据库层面的问题 比较一下正常和异常的http请求,一个是Get,一个是Post, 原因就找到了 tomcat4 ...

  10. 1031 Hello World for U (20 分)

    1031 Hello World for U (20 分) Given any string of N (≥5) characters, you are asked to form the chara ...