Anpassen des Erscheinungsbilds von Drone CI 2.0

Hör mal zu!

Wenn die Sterne leuchten,

bedeutet das schließlich, dass jemand sie braucht?

(V. V. Mayakovsky)





Vorwort

Es ist einfach so passiert, dass ich vor einiger Zeit bei einem meiner Jobs kollektive Code-Entwicklungstools für eine Gruppe von Fortran- Programmierern einrichten musste . Zuerst haben sie Gitosis selbst eingerichtet , dann Trac , aber die ganze Zeit fehlte etwas. Es gab ständige Probleme mit der gleichzeitigen Injektion von Code sowie mit der sogenannten Codeüberprüfung ... Im Allgemeinen hat sich diese Gruppe von Entwicklern zu einem vollwertigen System der gemeinsamen Entwicklung mit CI / CD entwickelt. Da die Gruppe zum Zeitpunkt der Installation des gemeinsamen Entwicklungssystems nicht reich ist, verfügte sie über einen schwachen Dual-Core-Server mit 2 GB RAM. Aus diesem Grund fiel die Wahl auf eine Reihe von Gogs + Drone . Kleine in Go geschriebenpraktisch ohne spezielle "Merkmale" des Programms. Unmittelbar nach der nächsten Code-Injektion war es jedoch möglich, die Baugruppe zu überprüfen und zu testen, ob sie ordnungsgemäß funktioniert.





So sieht die aktuelle Version von Drone 0.8 aus, die im "Kampf" -Modus verwendet wird .





Aktualisieren

, , , 2021 . Gitea Drone . Gogs Gitea , . Drone 0.8 1.x , , , . , , — . Gitea + Drone 1.10 Drone 2.0 (13 2021 ), .





Drone 2.0

Drone CI . -, Drone CI Harness CI, :





, ( ). , : , , — ? , , Drone UI .





, , CSS . , , . , , , CSS Drone UI. , Drone GitHub Drone UI. , (.drone.yml) Drone UI. Drone UI . , , . — , :





go get -v -insecure xxx.com/xxx/drone-ui
sed -i '' 's/github.com\/drone\/drone-ui/xxx.com\/xxx\/drone-ui/' ./handler/web/{logout,pages,web}.go
      
      



, , Go ( , - ), , . , — .





( ), Drone Drone UI . - , , Node.js, . .





, , . drone : (clone), Go (test), drone-server (build) Docker- (publish). — .drone.yml, drone:





---
kind: pipeline
type: docker
name: linux-amd64

platform:
  arch: amd64
  os: linux

steps:
- name: test
  image: golang:1.14.4
  commands:
  - go test ./...
  
- name: build
  image: golang:1.14.4
  commands:
  - sh scripts/build.sh
  environment:
    GOARCH: amd64
    GOOS: linux

- name: publish
  image: plugins/docker:18
  settings:
    auto_tag: true
    auto_tag_suffix: linux-amd64
    dockerfile: docker/Dockerfile.server.linux.amd64
    repo: drone/drone
    username:
      from_secret: docker_username
    password:
      from_secret: docker_password
  when:
    event:
    - push
    - tag
      
      



, , , Drone UI.





. drone:





- name: clone
  image: drone/git
  commands:
  - export DRONE_TAG=v2.0.0
  - export DRONE_COMMIT_REF=refs/tags/$DRONE_TAG
  - export DRONE_REMOTE_URL=https://github.com/drone/drone.git
  - clone
      
      



drone-ui:





- name: clone drone-ui
  image: drone/git
  commands:
  - export DRONE_COMMIT_BRANCH=drone2
  - export DRONE_COMMIT_REF=refs/heads/$DRONE_COMMIT_BRANCH
  - export DRONE_COMMIT_SHA=d96f1e26d4482663535cfc913f650956c914f27f
  - export DRONE_REMOTE_URL=https://github.com/drone/drone-ui.git
  - export DRONE_WORKSPACE=$DRONE_WORKSPACE_BASE/web
  - clone
      
      



. , , drone/git.





:





- name: clone patch
  image: drone/git
  commands:
  - export DRONE_WORKSPACE=$DRONE_WORKSPACE_BASE/patch
  - mkdir -p $DRONE_WORKSPACE
  - clone
      
      



. , Drone, , $DRONE_WORKSPACE_BASE



drone, patch



. , , :





clone:
  disable: true
      
      



drone-ui - CSS .





:





- name: patch drone-ui
  image: node:15.14.0
  commands:
  - cd $DRONE_WORKSPACE_BASE/web
  - patch -p1 < ../patch/drone-ui-2.0-customize.patch
      
      



, web drone-ui, () drone-server.





drone-ui:





- name: build drone-ui
  image: node:15.14.0
  commands:
  - cd $DRONE_WORKSPACE_BASE/web
  - npm install
  - npm run build
  environment:
    CI: false
      
      



Node.js, drone-ui . , CI



false



, (warnings) .





drone-ui — . dist_gen.go



, drone. :





- name: generate drone-ui
  image: golang:1.14.4
  commands:
  - cd $DRONE_WORKSPACE_BASE/web
  - go get github.com/bradrydzewski/togo
  - rm -vf dist/dist_gen.go
  - go generate ./dist
      
      



. togo, dist_gen.go



:





go get github.com/bradrydzewski/togo
      
      



, , dist_gen.go



:





go generate ./dist
      
      



( ) . , , :





rm -vf dist/dist_gen.go
      
      



drone drone-ui:





- name: replace drone-ui
  image: golang:1.14.4
  commands:
  - cd $DRONE_WORKSPACE_BASE/web
  - go mod init github.com/drone/drone-ui
  - cd $DRONE_WORKSPACE_BASE
  - go mod edit -replace=github.com/drone/drone-ui=./web
      
      



github.com/drone/drone-ui web:





go mod init github.com/drone/drone-ui
      
      



.





, , drone-ui , web:





go mod edit -replace=github.com/drone/drone-ui=./web
      
      



, . — ./web



. ./



, web.





drone-ui . drone :





- name: test
  image: golang:1.14.4
  commands:
  - export GOPATH=$DRONE_WORKSPACE_BASE/go
  - go test ./...

- name: build
  image: golang:1.14.4
  commands:
  - export GOPATH=$DRONE_WORKSPACE_BASE/go
  - sh scripts/build.sh
  - strip -s -R .comment release/linux/$GOARCH/drone-server
  environment:
    GOARCH: amd64
    GOOS: linux
      
      







export GOPATH=$DRONE_WORKSPACE_BASE/go
      
      



— , . , DRONE_WORKSPACE_BASE



/drone/src



, Drone CI.





,





strip -s -R .comment release/linux/$GOARCH/drone-server
      
      



, .





Docker- :





- name: publish
  image: plugins/docker:18
  settings:
    tags: [ latest, "2", "2.0", "2.0.0" ]
    dockerfile: docker/Dockerfile.server.linux.amd64
    repo: drone/drone-server-customized
    username:
      from_secret: docker_username
    password:
      from_secret: docker_password
    dry_run: true
  when:
    repo:
    - tkushnir/drone-server-customized
    branch:
    - main
    event:
      exclude:
      - pull_request
      
      



dry_run: true



, . .





Drone 2.0 :





Gitea Drone .





, , Drone. , - . , , , Vue Node.js .





Beim Aufrüsten von Drone 0,8 bis Drone 1.10 und weiter zu Drone 2.0 wurde festgestellt , dass die alten Schritte von Baugruppen, die 0,8 in Version vorgenommen wurden und wurden in der Regel auf der Version 1.10 vom Standard übertragen Dienstprogramm , nicht mehr sichtbar ist . Dieses Problem wurde ganz einfach gelöst. Wenn ich die Schritte des Übergangs von Drone 0.8 zu Drone 2.0 beschreibe, werde ich diese Erfahrung ebenfalls teilen.





Es kann auch sinnvoll sein, die Probleme (und ihre Lösungen) zu teilen, die beim Übergang von Gogs zu den neuesten Versionen von Gitea aufgetreten sind. Anfangs dachte man, dass dieser Übergang recht einfach sein würde, aber es stellte sich heraus, dass es auch hier einige Fallstricke gibt.








All Articles