refac: project
This commit is contained in:
parent
39d233b3d9
commit
d6adb0e2e3
@ -1,7 +0,0 @@
|
|||||||
.github
|
|
||||||
.gitignore
|
|
||||||
.drone.yml
|
|
||||||
LICENSE
|
|
||||||
README.md
|
|
||||||
*/fixtures*
|
|
||||||
*.go
|
|
168
.drone.yml
168
.drone.yml
@ -1,168 +0,0 @@
|
|||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: vm
|
|
||||||
name: linux-amd64
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: linux
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
pool:
|
|
||||||
use: ubuntu
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build
|
|
||||||
image: golang:1.10
|
|
||||||
commands:
|
|
||||||
- cd posix
|
|
||||||
- tar -xf fixtures.tar -C /
|
|
||||||
- go test -v
|
|
||||||
|
|
||||||
- name: publish
|
|
||||||
image: plugins/docker:18
|
|
||||||
settings:
|
|
||||||
dockerfile: docker/Dockerfile.linux.amd64
|
|
||||||
repo: drone/git
|
|
||||||
auto_tag: "true"
|
|
||||||
auto_tag_suffix: linux-amd64
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
- tag
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: vm
|
|
||||||
name: linux-arm64
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: linux
|
|
||||||
arch: arm64
|
|
||||||
|
|
||||||
pool:
|
|
||||||
use: ubuntu_arm64
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build
|
|
||||||
image: golang:1.10
|
|
||||||
commands:
|
|
||||||
- cd posix
|
|
||||||
- tar -xf fixtures.tar -C /
|
|
||||||
- go test -v
|
|
||||||
|
|
||||||
- name: publish
|
|
||||||
image: plugins/docker:18
|
|
||||||
settings:
|
|
||||||
dockerfile: docker/Dockerfile.linux.arm64
|
|
||||||
repo: drone/git
|
|
||||||
auto_tag: "true"
|
|
||||||
auto_tag_suffix: linux-arm64
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
when:
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
- tag
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: vm
|
|
||||||
name: windows-1809
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: windows
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
pool:
|
|
||||||
use: windows
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: docker
|
|
||||||
image: plugins/docker
|
|
||||||
settings:
|
|
||||||
dockerfile: docker/Dockerfile.windows.1809
|
|
||||||
repo: drone/git
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
auto_tag: true
|
|
||||||
auto_tag_suffix: windows-1809-amd64
|
|
||||||
daemon_off: true
|
|
||||||
purge: false
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: vm
|
|
||||||
name: windows-ltsc2022
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: windows
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
pool:
|
|
||||||
use: windows-2022
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: docker
|
|
||||||
image: plugins/docker
|
|
||||||
settings:
|
|
||||||
dockerfile: docker/Dockerfile.windows.ltsc2022
|
|
||||||
repo: drone/git
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
auto_tag: true
|
|
||||||
auto_tag_suffix: windows-ltsc2022-amd64
|
|
||||||
daemon_off: true
|
|
||||||
purge: false
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: vm
|
|
||||||
name: manifest
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: linux
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
pool:
|
|
||||||
use: ubuntu
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: manifest
|
|
||||||
image: plugins/manifest
|
|
||||||
settings:
|
|
||||||
auto_tag: "true"
|
|
||||||
ignore_missing: "true"
|
|
||||||
spec: docker/manifest.tmpl
|
|
||||||
username:
|
|
||||||
from_secret: docker_username
|
|
||||||
password:
|
|
||||||
from_secret: docker_password
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
event:
|
|
||||||
- push
|
|
||||||
- tag
|
|
||||||
|
|
||||||
depends_on:
|
|
||||||
- linux-amd64
|
|
||||||
- linux-arm64
|
|
||||||
- windows-1809
|
|
||||||
- windows-ltsc2022
|
|
12
.editorconfig
Normal file
12
.editorconfig
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
end_of_line = lf
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = false
|
||||||
|
|
||||||
|
[Makefile]
|
||||||
|
indent_style = tab
|
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
Makefile eol=lf
|
9
.github/issue_template.md
vendored
9
.github/issue_template.md
vendored
@ -1,9 +0,0 @@
|
|||||||
<!-- PLEASE READ BEFORE DELETING
|
|
||||||
|
|
||||||
Bugs or Issues? Due to the high number of false positive issues we receive,
|
|
||||||
please do not create a GitHub issue until you have discussed and verified
|
|
||||||
with community support at:
|
|
||||||
|
|
||||||
https://discourse.drone.io/
|
|
||||||
|
|
||||||
-->
|
|
0
.github/pull_request_template.md
vendored
0
.github/pull_request_template.md
vendored
21
CHANGELOG.md
21
CHANGELOG.md
@ -1,21 +0,0 @@
|
|||||||
# Changelog
|
|
||||||
All notable changes to this project will be documented in this file.
|
|
||||||
|
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
||||||
|
|
||||||
## [Unreleased]
|
|
||||||
### Added
|
|
||||||
|
|
||||||
## [1.1.0]
|
|
||||||
### Added
|
|
||||||
|
|
||||||
- Ability to clone tags for promotion events from [@josmo](https://github.com/josme)
|
|
||||||
- Support for git lfs in base images from [@carlwgeorge](https://github.com/carlwgeorge)
|
|
||||||
- Support for windows 1803 from [@donny-dont](https://github.com/donny-dont)
|
|
||||||
- Support for windows 1809 from [@donny-dont](https://github.com/donny-dont)
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- Fixed error merging when missing email from [@bradrydzewski](https://github.com/bradrydzewski)
|
|
||||||
- Fixed empty ref on windows from [@drpebcak](https://github.com/drpebcak)
|
|
20
Dockerfile
Normal file
20
Dockerfile
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
FROM docker.io/library/alpine:3.18.4
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
aws-cli \
|
||||||
|
bash \
|
||||||
|
ca-certificates \
|
||||||
|
curl \
|
||||||
|
git \
|
||||||
|
git-lfs \
|
||||||
|
openssh \
|
||||||
|
perl \
|
||||||
|
sudo
|
||||||
|
|
||||||
|
ADD rootfs /
|
||||||
|
|
||||||
|
# RUN adduser -g Drone -s /bin/sh -D -u 1000 drone
|
||||||
|
# RUN echo 'drone ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/drone
|
||||||
|
# USER drone:drone
|
||||||
|
# RUN chmod -R 777 /home/drone
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/local/bin/clone"]
|
47
Makefile
Normal file
47
Makefile
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# CONTAINER_RUNTIME
|
||||||
|
# The CONTAINER_RUNTIME variable will be used to specified the path to a
|
||||||
|
# container runtime. This is needed to start and run a container image.
|
||||||
|
CONTAINER_RUNTIME?=$(shell which podman)
|
||||||
|
|
||||||
|
# GIT_IMAGE_REGISTRY_NAME
|
||||||
|
# Defines the name of the new container to be built using several variables.
|
||||||
|
GIT_IMAGE_REGISTRY_NAME:=git.cryptic.systems
|
||||||
|
GIT_IMAGE_REGISTRY_USER:=volker.raschek
|
||||||
|
|
||||||
|
GIT_IMAGE_NAMESPACE?=${GIT_IMAGE_REGISTRY_USER}
|
||||||
|
GIT_IMAGE_NAME:=git
|
||||||
|
GIT_IMAGE_VERSION?=latest
|
||||||
|
GIT_IMAGE_FULLY_QUALIFIED=${GIT_IMAGE_REGISTRY_NAME}/${GIT_IMAGE_NAMESPACE}/${GIT_IMAGE_NAME}:${GIT_IMAGE_VERSION}
|
||||||
|
GIT_IMAGE_UNQUALIFIED=${GIT_IMAGE_NAMESPACE}/${GIT_IMAGE_NAME}:${GIT_IMAGE_VERSION}
|
||||||
|
|
||||||
|
# BUILD CONTAINER IMAGE
|
||||||
|
# ==============================================================================
|
||||||
|
PHONY:=container-image/build
|
||||||
|
container-image/build:
|
||||||
|
${CONTAINER_RUNTIME} build \
|
||||||
|
--file Dockerfile \
|
||||||
|
--no-cache \
|
||||||
|
--pull \
|
||||||
|
--tag ${GIT_IMAGE_FULLY_QUALIFIED} \
|
||||||
|
--tag ${GIT_IMAGE_UNQUALIFIED} \
|
||||||
|
.
|
||||||
|
|
||||||
|
# DELETE CONTAINER IMAGE
|
||||||
|
# ==============================================================================
|
||||||
|
PHONY:=container-image/delete
|
||||||
|
container-image/delete:
|
||||||
|
- ${CONTAINER_RUNTIME} image rm ${GIT_IMAGE_FULLY_QUALIFIED} ${GIT_IMAGE_UNQUALIFIED}
|
||||||
|
- ${CONTAINER_RUNTIME} image rm ${BASE_IMAGE_FULL}
|
||||||
|
|
||||||
|
# PUSH CONTAINER IMAGE
|
||||||
|
# ==============================================================================
|
||||||
|
PHONY+=container-image/push
|
||||||
|
container-image/push:
|
||||||
|
echo ${GIT_IMAGE_REGISTRY_PASSWORD} | ${CONTAINER_RUNTIME} login ${GIT_IMAGE_REGISTRY_NAME} --username ${GIT_IMAGE_REGISTRY_USER} --password-stdin
|
||||||
|
${CONTAINER_RUNTIME} push ${GIT_IMAGE_FULLY_QUALIFIED}
|
||||||
|
|
||||||
|
# PHONY
|
||||||
|
# ==============================================================================
|
||||||
|
# Declare the contents of the PHONY variable as phony. We keep that information
|
||||||
|
# in a variable so we can use it in if_changed.
|
||||||
|
.PHONY: ${PHONY}
|
35
README.md
35
README.md
@ -1,25 +1,34 @@
|
|||||||
# drone-git
|
# git-docker
|
||||||
|
|
||||||
Drone plugin to clone `git` repositories.
|
This is a fork of the official project to clone git repositories from a SCM
|
||||||
|
control system like github, gitlab, gitea, gogs and so on. The difference
|
||||||
|
between the origin and this fork is that this project supports ARM and the shell
|
||||||
|
scripts are tested against shellchecker.
|
||||||
|
|
||||||
|
Among other things, the project experiences more extensive support, as the
|
||||||
|
project receives continuous updates thanks to renovate.
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
Build the Docker image with the following commands:
|
The container image can be build with via `make` and requires `docker` or
|
||||||
|
`podman`.
|
||||||
|
|
||||||
```
|
```bash
|
||||||
docker build --rm -f docker/Dockerfile.linux.amd64 -t drone/git .
|
make container-image/build CONTAINER_RUNTIME=docker # or
|
||||||
|
make container-image/build CONTAINER_RUNTIME=podman
|
||||||
```
|
```
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Clone a commit:
|
Clone a commit:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
docker run --rm \
|
podman run \
|
||||||
-e DRONE_WORKSPACE=/drone \
|
--rm \
|
||||||
-e DRONE_REMOTE_URL=https://github.com/drone/envsubst.git \
|
--env DRONE_BUILD_EVENT=push \
|
||||||
-e DRONE_BUILD_EVENT=push \
|
--env DRONE_COMMIT_SHA=39d233b3d9eccc68e66508a06a725a2567f33143 \
|
||||||
-e DRONE_COMMIT_SHA=15e3f9b7e16332eee3bbdff9ef31f95d23c5da2c \
|
--env DRONE_REMOTE_URL=https://git.cryptic.systems/volker.raschek/git-docker.git \
|
||||||
-e DRONE_COMMIT_BRANCH=master \
|
--env DRONE_WORKSPACE=/workspace \
|
||||||
drone/git
|
--volume /tmp/workspace:/workspace \
|
||||||
|
volker.raschek/git:latest
|
||||||
```
|
```
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
FROM alpine:3.12
|
|
||||||
RUN apk add --no-cache ca-certificates git git-lfs openssh curl perl aws-cli sudo
|
|
||||||
|
|
||||||
ADD posix/* /usr/local/bin/
|
|
||||||
|
|
||||||
# RUN adduser -g Drone -s /bin/sh -D -u 1000 drone
|
|
||||||
# RUN echo 'drone ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/drone
|
|
||||||
# USER drone:drone
|
|
||||||
# RUN chmod -R 777 /home/drone
|
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/local/bin/clone"]
|
|
@ -1,11 +0,0 @@
|
|||||||
FROM arm64v8/alpine:3.12
|
|
||||||
RUN apk add --no-cache ca-certificates git git-lfs openssh curl perl aws-cli sudo
|
|
||||||
|
|
||||||
ADD posix/* /usr/local/bin/
|
|
||||||
|
|
||||||
# RUN adduser -g Drone -s /bin/sh -D -u 1000 drone
|
|
||||||
# RUN echo 'drone ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/drone
|
|
||||||
# USER drone:drone
|
|
||||||
# RUN chmod -R 777 /home/drone
|
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/local/bin/clone"]
|
|
@ -1,20 +0,0 @@
|
|||||||
# escape=`
|
|
||||||
|
|
||||||
FROM mcr.microsoft.com/windows/servercore:1809 AS git
|
|
||||||
SHELL ["powershell.exe", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
|
|
||||||
|
|
||||||
RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; `
|
|
||||||
Invoke-WebRequest -UseBasicParsing https://github.com/git-for-windows/git/releases/download/v2.21.0.windows.1/MinGit-2.21.0-64-bit.zip -OutFile git.zip; `
|
|
||||||
Expand-Archive git.zip -DestinationPath C:\git;
|
|
||||||
|
|
||||||
FROM mcr.microsoft.com/powershell:nanoserver-1809
|
|
||||||
COPY --from=git /git /git
|
|
||||||
|
|
||||||
ADD windows/* /bin/
|
|
||||||
|
|
||||||
# https://github.com/PowerShell/PowerShell/issues/6211#issuecomment-367477137
|
|
||||||
USER ContainerAdministrator
|
|
||||||
RUN setx /M PATH "%PATH%;C:\Program Files\PowerShell"
|
|
||||||
|
|
||||||
SHELL ["pwsh", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
|
|
||||||
CMD [ "pwsh", "C:\\bin\\clone.ps1" ]
|
|
@ -1,20 +0,0 @@
|
|||||||
# escape=`
|
|
||||||
|
|
||||||
FROM mcr.microsoft.com/windows/servercore:ltsc2022 AS git
|
|
||||||
SHELL ["powershell.exe", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
|
|
||||||
|
|
||||||
RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; `
|
|
||||||
Invoke-WebRequest -UseBasicParsing https://github.com/git-for-windows/git/releases/download/v2.21.0.windows.1/MinGit-2.21.0-64-bit.zip -OutFile git.zip; `
|
|
||||||
Expand-Archive git.zip -DestinationPath C:\git;
|
|
||||||
|
|
||||||
FROM mcr.microsoft.com/powershell:nanoserver-ltsc2022
|
|
||||||
COPY --from=git /git /git
|
|
||||||
|
|
||||||
ADD windows/* /bin/
|
|
||||||
|
|
||||||
# https://github.com/PowerShell/PowerShell/issues/6211#issuecomment-367477137
|
|
||||||
USER ContainerAdministrator
|
|
||||||
RUN setx /M PATH "%PATH%;C:\Program Files\PowerShell"
|
|
||||||
|
|
||||||
SHELL ["pwsh", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
|
|
||||||
CMD [ "pwsh", "C:\\bin\\clone.ps1" ]
|
|
@ -1,31 +0,0 @@
|
|||||||
image: drone/git:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
|
|
||||||
{{#if build.tags}}
|
|
||||||
tags:
|
|
||||||
{{#each build.tags}}
|
|
||||||
- {{this}}
|
|
||||||
{{/each}}
|
|
||||||
{{/if}}
|
|
||||||
manifests:
|
|
||||||
-
|
|
||||||
image: drone/git:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
|
|
||||||
platform:
|
|
||||||
architecture: amd64
|
|
||||||
os: linux
|
|
||||||
-
|
|
||||||
image: drone/git:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64
|
|
||||||
platform:
|
|
||||||
variant: v8
|
|
||||||
architecture: arm64
|
|
||||||
os: linux
|
|
||||||
-
|
|
||||||
image: drone/git:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-1809-amd64
|
|
||||||
platform:
|
|
||||||
architecture: amd64
|
|
||||||
os: windows
|
|
||||||
version: 1809
|
|
||||||
-
|
|
||||||
image: drone/git:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-ltsc2022-amd64
|
|
||||||
platform:
|
|
||||||
architecture: amd64
|
|
||||||
os: windows
|
|
||||||
version: ltsc2022
|
|
862
drone.yml
Normal file
862
drone.yml
Normal file
@ -0,0 +1,862 @@
|
|||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: kubernetes
|
||||||
|
name: linter
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:1.3.0
|
||||||
|
|
||||||
|
- name: markdown lint
|
||||||
|
commands:
|
||||||
|
- markdownlint *.md
|
||||||
|
image: git.cryptic.systems/volker.raschek/markdownlint:0.36.0
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 150
|
||||||
|
memory: 150M
|
||||||
|
|
||||||
|
- name: email-notification
|
||||||
|
environment:
|
||||||
|
SMTP_FROM_ADDRESS:
|
||||||
|
from_secret: smtp_from_address
|
||||||
|
SMTP_FROM_NAME:
|
||||||
|
from_secret: smtp_from_name
|
||||||
|
SMTP_HOST:
|
||||||
|
from_secret: smtp_host
|
||||||
|
SMTP_USERNAME:
|
||||||
|
from_secret: smtp_username
|
||||||
|
SMTP_PASSWORD:
|
||||||
|
from_secret: smtp_password
|
||||||
|
image: git.cryptic.systems/volker.raschek/drone-email:0.1.2
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 150
|
||||||
|
memory: 150M
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
exclude:
|
||||||
|
- tag
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: dry-run-amd64
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- linter
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:1.3.0
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
image: docker.io/plugins/docker:20.10.9
|
||||||
|
settings:
|
||||||
|
auto_tag: false
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
dry_run: true
|
||||||
|
force_tag: true
|
||||||
|
no_cache: true
|
||||||
|
purge: true
|
||||||
|
mirror:
|
||||||
|
from_secret: docker_io_mirror
|
||||||
|
registry: git.cryptic.systems
|
||||||
|
repo: git.cryptic.systems/volker.raschek/git
|
||||||
|
tags: latest-amd64
|
||||||
|
username:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_user
|
||||||
|
password:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_password
|
||||||
|
|
||||||
|
- name: email-notification
|
||||||
|
environment:
|
||||||
|
SMTP_FROM_ADDRESS:
|
||||||
|
from_secret: smtp_from_address
|
||||||
|
SMTP_FROM_NAME:
|
||||||
|
from_secret: smtp_from_name
|
||||||
|
SMTP_HOST:
|
||||||
|
from_secret: smtp_host
|
||||||
|
SMTP_USERNAME:
|
||||||
|
from_secret: smtp_username
|
||||||
|
SMTP_PASSWORD:
|
||||||
|
from_secret: smtp_password
|
||||||
|
image: git.cryptic.systems/volker.raschek/drone-email:0.1.2
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
exclude:
|
||||||
|
- master
|
||||||
|
event:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
repo:
|
||||||
|
- volker.raschek/git-docker
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: dry-run-arm-v7
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- linter
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
arch: arm
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:1.3.0
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
image: docker.io/plugins/docker:20.10.9
|
||||||
|
settings:
|
||||||
|
auto_tag: false
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
dry_run: true
|
||||||
|
force_tag: true
|
||||||
|
no_cache: true
|
||||||
|
purge: true
|
||||||
|
mirror:
|
||||||
|
from_secret: docker_io_mirror
|
||||||
|
registry: git.cryptic.systems
|
||||||
|
repo: git.cryptic.systems/volker.raschek/git
|
||||||
|
tags: latest-arm-v7
|
||||||
|
username:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_user
|
||||||
|
password:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_password
|
||||||
|
|
||||||
|
- name: email-notification
|
||||||
|
environment:
|
||||||
|
SMTP_FROM_ADDRESS:
|
||||||
|
from_secret: smtp_from_address
|
||||||
|
SMTP_FROM_NAME:
|
||||||
|
from_secret: smtp_from_name
|
||||||
|
SMTP_HOST:
|
||||||
|
from_secret: smtp_host
|
||||||
|
SMTP_USERNAME:
|
||||||
|
from_secret: smtp_username
|
||||||
|
SMTP_PASSWORD:
|
||||||
|
from_secret: smtp_password
|
||||||
|
image: git.cryptic.systems/volker.raschek/drone-email:0.1.2
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
exclude:
|
||||||
|
- master
|
||||||
|
event:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
repo:
|
||||||
|
- volker.raschek/git-docker
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: dry-run-arm64-v8
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- linter
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
arch: arm64
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:1.3.0
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
image: docker.io/plugins/docker:20.10.9
|
||||||
|
settings:
|
||||||
|
auto_tag: false
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
dry_run: true
|
||||||
|
force_tag: true
|
||||||
|
no_cache: true
|
||||||
|
purge: true
|
||||||
|
mirror:
|
||||||
|
from_secret: docker_io_mirror
|
||||||
|
registry: git.cryptic.systems
|
||||||
|
repo: git.cryptic.systems/volker.raschek/git
|
||||||
|
tags: latest-arm64-v8
|
||||||
|
username:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_user
|
||||||
|
password:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_password
|
||||||
|
|
||||||
|
- name: email-notification
|
||||||
|
environment:
|
||||||
|
SMTP_FROM_ADDRESS:
|
||||||
|
from_secret: smtp_from_address
|
||||||
|
SMTP_FROM_NAME:
|
||||||
|
from_secret: smtp_from_name
|
||||||
|
SMTP_HOST:
|
||||||
|
from_secret: smtp_host
|
||||||
|
SMTP_USERNAME:
|
||||||
|
from_secret: smtp_username
|
||||||
|
SMTP_PASSWORD:
|
||||||
|
from_secret: smtp_password
|
||||||
|
image: git.cryptic.systems/volker.raschek/drone-email:0.1.2
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
exclude:
|
||||||
|
- master
|
||||||
|
event:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
repo:
|
||||||
|
- volker.raschek/git-docker
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: latest-amd64
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- linter
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:1.3.0
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
image: docker.io/plugins/docker:20.10.9
|
||||||
|
settings:
|
||||||
|
auto_tag: false
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
force_tag: true
|
||||||
|
no_cache: true
|
||||||
|
purge: true
|
||||||
|
mirror:
|
||||||
|
from_secret: docker_io_mirror
|
||||||
|
registry: git.cryptic.systems
|
||||||
|
repo: git.cryptic.systems/volker.raschek/git
|
||||||
|
tags: latest-amd64
|
||||||
|
username:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_user
|
||||||
|
password:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_password
|
||||||
|
|
||||||
|
- name: email-notification
|
||||||
|
environment:
|
||||||
|
SMTP_FROM_ADDRESS:
|
||||||
|
from_secret: smtp_from_address
|
||||||
|
SMTP_FROM_NAME:
|
||||||
|
from_secret: smtp_from_name
|
||||||
|
SMTP_HOST:
|
||||||
|
from_secret: smtp_host
|
||||||
|
SMTP_USERNAME:
|
||||||
|
from_secret: smtp_username
|
||||||
|
SMTP_PASSWORD:
|
||||||
|
from_secret: smtp_password
|
||||||
|
image: git.cryptic.systems/volker.raschek/drone-email:0.1.2
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
event:
|
||||||
|
- cron
|
||||||
|
- push
|
||||||
|
repo:
|
||||||
|
- volker.raschek/git-docker
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: latest-arm-v7
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- linter
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
arch: arm
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:1.3.0
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
image: docker.io/plugins/docker:20.10.9
|
||||||
|
settings:
|
||||||
|
auto_tag: false
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
force_tag: true
|
||||||
|
no_cache: true
|
||||||
|
purge: true
|
||||||
|
mirror:
|
||||||
|
from_secret: docker_io_mirror
|
||||||
|
registry: git.cryptic.systems
|
||||||
|
repo: git.cryptic.systems/volker.raschek/git
|
||||||
|
tags: latest-arm-v7
|
||||||
|
username:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_user
|
||||||
|
password:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_password
|
||||||
|
|
||||||
|
- name: email-notification
|
||||||
|
environment:
|
||||||
|
SMTP_FROM_ADDRESS:
|
||||||
|
from_secret: smtp_from_address
|
||||||
|
SMTP_FROM_NAME:
|
||||||
|
from_secret: smtp_from_name
|
||||||
|
SMTP_HOST:
|
||||||
|
from_secret: smtp_host
|
||||||
|
SMTP_USERNAME:
|
||||||
|
from_secret: smtp_username
|
||||||
|
SMTP_PASSWORD:
|
||||||
|
from_secret: smtp_password
|
||||||
|
image: git.cryptic.systems/volker.raschek/drone-email:0.1.2
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
event:
|
||||||
|
- cron
|
||||||
|
- push
|
||||||
|
repo:
|
||||||
|
- volker.raschek/git-docker
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: latest-arm64-v8
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- linter
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
arch: arm64
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:1.3.0
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
image: docker.io/plugins/docker:20.10.9
|
||||||
|
settings:
|
||||||
|
auto_tag: false
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
force_tag: true
|
||||||
|
no_cache: true
|
||||||
|
purge: true
|
||||||
|
mirror:
|
||||||
|
from_secret: docker_io_mirror
|
||||||
|
registry: git.cryptic.systems
|
||||||
|
repo: git.cryptic.systems/volker.raschek/git
|
||||||
|
tags: latest-arm64-v8
|
||||||
|
username:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_user
|
||||||
|
password:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_password
|
||||||
|
|
||||||
|
- name: email-notification
|
||||||
|
environment:
|
||||||
|
SMTP_FROM_ADDRESS:
|
||||||
|
from_secret: smtp_from_address
|
||||||
|
SMTP_FROM_NAME:
|
||||||
|
from_secret: smtp_from_name
|
||||||
|
SMTP_HOST:
|
||||||
|
from_secret: smtp_host
|
||||||
|
SMTP_USERNAME:
|
||||||
|
from_secret: smtp_username
|
||||||
|
SMTP_PASSWORD:
|
||||||
|
from_secret: smtp_password
|
||||||
|
image: git.cryptic.systems/volker.raschek/drone-email:0.1.2
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
event:
|
||||||
|
- cron
|
||||||
|
- push
|
||||||
|
repo:
|
||||||
|
- volker.raschek/git-docker
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: kubernetes
|
||||||
|
name: latest-manifest
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- latest-amd64
|
||||||
|
- latest-arm-v7
|
||||||
|
- latest-arm64-v8
|
||||||
|
|
||||||
|
# docker.io/plugins/manifest only for amd64 architectures available
|
||||||
|
node_selector:
|
||||||
|
kubernetes.io/os: linux
|
||||||
|
kubernetes.io/arch: amd64
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:1.3.0
|
||||||
|
|
||||||
|
- name: build-manifest
|
||||||
|
image: docker.io/plugins/manifest:1.4.0
|
||||||
|
settings:
|
||||||
|
auto_tag: false
|
||||||
|
ignore_missing: true
|
||||||
|
spec: manifest.tmpl
|
||||||
|
username:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_user
|
||||||
|
password:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_password
|
||||||
|
|
||||||
|
- name: email-notification
|
||||||
|
environment:
|
||||||
|
SMTP_FROM_ADDRESS:
|
||||||
|
from_secret: smtp_from_address
|
||||||
|
SMTP_FROM_NAME:
|
||||||
|
from_secret: smtp_from_name
|
||||||
|
SMTP_HOST:
|
||||||
|
from_secret: smtp_host
|
||||||
|
SMTP_USERNAME:
|
||||||
|
from_secret: smtp_username
|
||||||
|
SMTP_PASSWORD:
|
||||||
|
from_secret: smtp_password
|
||||||
|
image: git.cryptic.systems/volker.raschek/drone-email:0.1.2
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 150
|
||||||
|
memory: 150M
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
event:
|
||||||
|
- cron
|
||||||
|
- push
|
||||||
|
repo:
|
||||||
|
- volker.raschek/git-docker
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: kubernetes
|
||||||
|
name: latest-sync
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- latest-manifest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:1.3.0
|
||||||
|
|
||||||
|
- name: latest-sync
|
||||||
|
commands:
|
||||||
|
- skopeo sync --all --src=docker --src-creds=$SRC_CRED_USERNAME:$SRC_CRED_PASSWORD --dest=docker --dest-creds=$DEST_CRED_USERNAME:$DEST_CRED_PASSWORD git.cryptic.systems/volker.raschek/git docker.io/volkerraschek
|
||||||
|
environment:
|
||||||
|
SRC_CRED_USERNAME:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_user
|
||||||
|
SRC_CRED_PASSWORD:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_password
|
||||||
|
DEST_CRED_USERNAME:
|
||||||
|
from_secret: container_image_registry_user
|
||||||
|
DEST_CRED_PASSWORD:
|
||||||
|
from_secret: container_image_registry_password
|
||||||
|
image: quay.io/skopeo/stable:v1.13.2
|
||||||
|
|
||||||
|
- name: email-notification
|
||||||
|
environment:
|
||||||
|
SMTP_FROM_ADDRESS:
|
||||||
|
from_secret: smtp_from_address
|
||||||
|
SMTP_FROM_NAME:
|
||||||
|
from_secret: smtp_from_name
|
||||||
|
SMTP_HOST:
|
||||||
|
from_secret: smtp_host
|
||||||
|
SMTP_USERNAME:
|
||||||
|
from_secret: smtp_username
|
||||||
|
SMTP_PASSWORD:
|
||||||
|
from_secret: smtp_password
|
||||||
|
image: git.cryptic.systems/volker.raschek/drone-email:0.1.2
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 150
|
||||||
|
memory: 150M
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
event:
|
||||||
|
- cron
|
||||||
|
- push
|
||||||
|
repo:
|
||||||
|
- volker.raschek/git-docker
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: tagged-amd64
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
arch: amd64
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:1.3.0
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
image: docker.io/plugins/docker:20.10.9
|
||||||
|
settings:
|
||||||
|
auto_tag: true
|
||||||
|
auto_tag_suffix: amd64
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
force_tag: true
|
||||||
|
no_cache: true
|
||||||
|
purge: true
|
||||||
|
mirror:
|
||||||
|
from_secret: docker_io_mirror
|
||||||
|
registry: git.cryptic.systems
|
||||||
|
repo: git.cryptic.systems/volker.raschek/git
|
||||||
|
username:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_user
|
||||||
|
password:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_password
|
||||||
|
build_args:
|
||||||
|
- GOSEC_VERSION=${DRONE_TAG}
|
||||||
|
|
||||||
|
- name: email-notification
|
||||||
|
environment:
|
||||||
|
SMTP_FROM_ADDRESS:
|
||||||
|
from_secret: smtp_from_address
|
||||||
|
SMTP_FROM_NAME:
|
||||||
|
from_secret: smtp_from_name
|
||||||
|
SMTP_HOST:
|
||||||
|
from_secret: smtp_host
|
||||||
|
SMTP_USERNAME:
|
||||||
|
from_secret: smtp_username
|
||||||
|
SMTP_PASSWORD:
|
||||||
|
from_secret: smtp_password
|
||||||
|
image: git.cryptic.systems/volker.raschek/drone-email:0.1.2
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
repo:
|
||||||
|
- volker.raschek/git-docker
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: tagged-arm-v7
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
arch: arm
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:1.3.0
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
image: docker.io/plugins/docker:20.10.9
|
||||||
|
settings:
|
||||||
|
auto_tag: true
|
||||||
|
auto_tag_suffix: arm-v7
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
force_tag: true
|
||||||
|
no_cache: true
|
||||||
|
purge: true
|
||||||
|
mirror:
|
||||||
|
from_secret: docker_io_mirror
|
||||||
|
registry: git.cryptic.systems
|
||||||
|
repo: git.cryptic.systems/volker.raschek/git
|
||||||
|
username:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_user
|
||||||
|
password:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_password
|
||||||
|
build_args:
|
||||||
|
- GOSEC_VERSION=${DRONE_TAG}
|
||||||
|
|
||||||
|
- name: email-notification
|
||||||
|
environment:
|
||||||
|
SMTP_FROM_ADDRESS:
|
||||||
|
from_secret: smtp_from_address
|
||||||
|
SMTP_FROM_NAME:
|
||||||
|
from_secret: smtp_from_name
|
||||||
|
SMTP_HOST:
|
||||||
|
from_secret: smtp_host
|
||||||
|
SMTP_USERNAME:
|
||||||
|
from_secret: smtp_username
|
||||||
|
SMTP_PASSWORD:
|
||||||
|
from_secret: smtp_password
|
||||||
|
image: git.cryptic.systems/volker.raschek/drone-email:0.1.2
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
repo:
|
||||||
|
- volker.raschek/git-docker
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: tagged-arm64-v8
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: linux
|
||||||
|
arch: arm64
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:1.3.0
|
||||||
|
|
||||||
|
- name: build
|
||||||
|
image: docker.io/plugins/docker:20.10.9
|
||||||
|
settings:
|
||||||
|
auto_tag: true
|
||||||
|
auto_tag_suffix: arm64-v8
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
force_tag: true
|
||||||
|
no_cache: true
|
||||||
|
purge: true
|
||||||
|
mirror:
|
||||||
|
from_secret: docker_io_mirror
|
||||||
|
registry: git.cryptic.systems
|
||||||
|
repo: git.cryptic.systems/volker.raschek/git
|
||||||
|
username:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_user
|
||||||
|
password:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_password
|
||||||
|
build_args:
|
||||||
|
- GOSEC_VERSION=${DRONE_TAG}
|
||||||
|
|
||||||
|
- name: email-notification
|
||||||
|
environment:
|
||||||
|
SMTP_FROM_ADDRESS:
|
||||||
|
from_secret: smtp_from_address
|
||||||
|
SMTP_FROM_NAME:
|
||||||
|
from_secret: smtp_from_name
|
||||||
|
SMTP_HOST:
|
||||||
|
from_secret: smtp_host
|
||||||
|
SMTP_USERNAME:
|
||||||
|
from_secret: smtp_username
|
||||||
|
SMTP_PASSWORD:
|
||||||
|
from_secret: smtp_password
|
||||||
|
image: git.cryptic.systems/volker.raschek/drone-email:0.1.2
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
repo:
|
||||||
|
- volker.raschek/git-docker
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: kubernetes
|
||||||
|
name: tagged-manifest
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- tagged-amd64
|
||||||
|
- tagged-arm-v7
|
||||||
|
- tagged-arm64-v8
|
||||||
|
|
||||||
|
# docker.io/plugins/manifest only for amd64 architectures available
|
||||||
|
node_selector:
|
||||||
|
kubernetes.io/os: linux
|
||||||
|
kubernetes.io/arch: amd64
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:1.3.0
|
||||||
|
|
||||||
|
- name: build-manifest
|
||||||
|
image: docker.io/plugins/manifest:1.4.0
|
||||||
|
settings:
|
||||||
|
auto_tag: true
|
||||||
|
ignore_missing: true
|
||||||
|
spec: manifest.tmpl
|
||||||
|
username:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_user
|
||||||
|
password:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_password
|
||||||
|
|
||||||
|
- name: email-notification
|
||||||
|
environment:
|
||||||
|
SMTP_FROM_ADDRESS:
|
||||||
|
from_secret: smtp_from_address
|
||||||
|
SMTP_FROM_NAME:
|
||||||
|
from_secret: smtp_from_name
|
||||||
|
SMTP_HOST:
|
||||||
|
from_secret: smtp_host
|
||||||
|
SMTP_USERNAME:
|
||||||
|
from_secret: smtp_username
|
||||||
|
SMTP_PASSWORD:
|
||||||
|
from_secret: smtp_password
|
||||||
|
image: git.cryptic.systems/volker.raschek/drone-email:0.1.2
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 150
|
||||||
|
memory: 150M
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
repo:
|
||||||
|
- volker.raschek/git-docker
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: kubernetes
|
||||||
|
name: tagged-sync
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- tagged-manifest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: clone
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:1.3.0
|
||||||
|
|
||||||
|
- name: tagged-sync
|
||||||
|
commands:
|
||||||
|
- skopeo sync --all --src=docker --src-creds=$SRC_CRED_USERNAME:$SRC_CRED_PASSWORD --dest=docker --dest-creds=$DEST_CRED_USERNAME:$DEST_CRED_PASSWORD git.cryptic.systems/volker.raschek/git docker.io/volkerraschek
|
||||||
|
environment:
|
||||||
|
SRC_CRED_USERNAME:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_user
|
||||||
|
SRC_CRED_PASSWORD:
|
||||||
|
from_secret: git_cryptic_systems_container_registry_password
|
||||||
|
DEST_CRED_USERNAME:
|
||||||
|
from_secret: container_image_registry_user
|
||||||
|
DEST_CRED_PASSWORD:
|
||||||
|
from_secret: container_image_registry_password
|
||||||
|
image: quay.io/skopeo/stable:v1.13.2
|
||||||
|
|
||||||
|
- name: email-notification
|
||||||
|
environment:
|
||||||
|
SMTP_FROM_ADDRESS:
|
||||||
|
from_secret: smtp_from_address
|
||||||
|
SMTP_FROM_NAME:
|
||||||
|
from_secret: smtp_from_name
|
||||||
|
SMTP_HOST:
|
||||||
|
from_secret: smtp_host
|
||||||
|
SMTP_USERNAME:
|
||||||
|
from_secret: smtp_username
|
||||||
|
SMTP_PASSWORD:
|
||||||
|
from_secret: smtp_password
|
||||||
|
image: git.cryptic.systems/volker.raschek/drone-email:0.1.2
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 150
|
||||||
|
memory: 150M
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- changed
|
||||||
|
- failure
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- tag
|
||||||
|
repo:
|
||||||
|
- volker.raschek/git-docker
|
26
manifest.tmpl
Normal file
26
manifest.tmpl
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
image: git.cryptic.systems/volker.raschek/git:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
|
||||||
|
{{#if build.tags}}
|
||||||
|
tags:
|
||||||
|
{{#each build.tags}}
|
||||||
|
- {{this}}
|
||||||
|
{{/each}}
|
||||||
|
- "latest"
|
||||||
|
{{/if}}
|
||||||
|
manifests:
|
||||||
|
-
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-amd64
|
||||||
|
platform:
|
||||||
|
architecture: amd64
|
||||||
|
os: linux
|
||||||
|
-
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-arm-v7
|
||||||
|
platform:
|
||||||
|
architecture: arm
|
||||||
|
os: linux
|
||||||
|
variant: v7
|
||||||
|
-
|
||||||
|
image: git.cryptic.systems/volker.raschek/git:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-arm64-v8
|
||||||
|
platform:
|
||||||
|
architecture: arm64
|
||||||
|
os: linux
|
||||||
|
variant: v8
|
@ -1,20 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
FLAGS=""
|
|
||||||
if [[ ! -z "${PLUGIN_DEPTH}" ]]; then
|
|
||||||
FLAGS="--depth=${PLUGIN_DEPTH}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d .git ]; then
|
|
||||||
git init
|
|
||||||
git remote add origin ${DRONE_REMOTE_URL}
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
|
|
||||||
git fetch ${FLAGS} origin +refs/heads/${DRONE_COMMIT_BRANCH}:
|
|
||||||
git checkout ${DRONE_COMMIT_BRANCH}
|
|
||||||
|
|
||||||
git fetch origin ${DRONE_COMMIT_REF}:
|
|
||||||
git merge ${DRONE_COMMIT_SHA}
|
|
@ -1,17 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
FLAGS=""
|
|
||||||
if [[ ! -z "${PLUGIN_DEPTH}" ]]; then
|
|
||||||
FLAGS="--depth=${PLUGIN_DEPTH}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d .git ]; then
|
|
||||||
git init
|
|
||||||
git remote add origin ${DRONE_REMOTE_URL}
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
|
|
||||||
git fetch ${FLAGS} origin +refs/tags/${DRONE_TAG}:
|
|
||||||
git checkout -qf FETCH_HEAD
|
|
@ -1,40 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# This script creates a git repository and seeds with
|
|
||||||
# commit history. Used by unit tests.
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
|
|
||||||
rm -rf /tmp/remote/greeting
|
|
||||||
mkdir -p /tmp/remote/greeting
|
|
||||||
pushd /tmp/remote/greeting
|
|
||||||
|
|
||||||
git init
|
|
||||||
|
|
||||||
echo "hi world" > hello.txt
|
|
||||||
git add hello.txt
|
|
||||||
git commit -m "say hi"
|
|
||||||
git tag v1.0.0
|
|
||||||
|
|
||||||
echo "hello world" > hello.txt
|
|
||||||
git add hello.txt
|
|
||||||
git commit -m "say hello"
|
|
||||||
git tag v1.1.0
|
|
||||||
|
|
||||||
git checkout -b fr
|
|
||||||
|
|
||||||
echo "salut monde" > hello.txt
|
|
||||||
git add hello.txt
|
|
||||||
git commit -m "say hello in french"
|
|
||||||
git tag v2.0.0
|
|
||||||
|
|
||||||
echo "bonjour monde" > hello.txt
|
|
||||||
git add hello.txt
|
|
||||||
git commit -m "say hello en francais"
|
|
||||||
git tag v2.1.0
|
|
||||||
|
|
||||||
git checkout master
|
|
||||||
|
|
||||||
popd
|
|
||||||
tar -cvf fixtures.tar /tmp/remote/greeting
|
|
Binary file not shown.
@ -1,3 +0,0 @@
|
|||||||
package posix
|
|
||||||
|
|
||||||
//go:generate go run ../scripts/includetext.go --input=clone --input=clone-commit --input=clone-pull-request --input=clone-tag --package=posix --output=posix_gen.go
|
|
@ -1,138 +0,0 @@
|
|||||||
package posix
|
|
||||||
|
|
||||||
// DO NOT EDIT. This file is automatically generated.
|
|
||||||
|
|
||||||
// Contents of clone
|
|
||||||
const Clone = `#!/bin/sh
|
|
||||||
|
|
||||||
if [[ ! -z "${DRONE_WORKSPACE}" ]]; then
|
|
||||||
cd ${DRONE_WORKSPACE}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# if the netrc enviornment variables exist, write
|
|
||||||
# the netrc file.
|
|
||||||
|
|
||||||
if [[ ! -z "${DRONE_NETRC_MACHINE}" ]]; then
|
|
||||||
cat <<EOF > /root/.netrc
|
|
||||||
machine ${DRONE_NETRC_MACHINE}
|
|
||||||
login ${DRONE_NETRC_USERNAME}
|
|
||||||
password ${DRONE_NETRC_PASSWORD}
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
|
|
||||||
# if the ssh_key environment variable exists, write
|
|
||||||
# the ssh key and add the netrc machine to the
|
|
||||||
# known hosts file.
|
|
||||||
|
|
||||||
if [[ ! -z "${SSH_KEY}" ]]; then
|
|
||||||
mkdir /root/.ssh
|
|
||||||
echo -n "$SSH_KEY" > /root/.ssh/id_rsa
|
|
||||||
chmod 600 /root/.ssh/id_rsa
|
|
||||||
|
|
||||||
touch /root/.ssh/known_hosts
|
|
||||||
chmod 600 /root/.ssh/known_hosts
|
|
||||||
ssh-keyscan -H ${DRONE_NETRC_MACHINE} > /etc/ssh/ssh_known_hosts 2> /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
# configure git global behavior and parameters via the
|
|
||||||
# following environment variables:
|
|
||||||
|
|
||||||
|
|
||||||
if [[ -z "${DRONE_COMMIT_AUTHOR_NAME}" ]]; then
|
|
||||||
export DRONE_COMMIT_AUTHOR_NAME=drone
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "${DRONE_COMMIT_AUTHOR_EMAIL}" ]]; then
|
|
||||||
export DRONE_COMMIT_AUTHOR_EMAIL=drone@localhost
|
|
||||||
fi
|
|
||||||
|
|
||||||
export GIT_AUTHOR_NAME=${DRONE_COMMIT_AUTHOR_NAME}
|
|
||||||
export GIT_AUTHOR_EMAIL=${DRONE_COMMIT_AUTHOR_EMAIL}
|
|
||||||
export GIT_COMMITTER_NAME=${DRONE_COMMIT_AUTHOR_NAME}
|
|
||||||
export GIT_COMMITTER_EMAIL=${DRONE_COMMIT_AUTHOR_EMAIL}
|
|
||||||
|
|
||||||
# invoke the sub-script based on the drone event type.
|
|
||||||
# TODO we should ultimately look at the ref, since
|
|
||||||
# we need something compatible with deployment events.
|
|
||||||
|
|
||||||
CLONE_TYPE=$DRONE_BUILD_EVENT
|
|
||||||
case $DRONE_COMMIT_REF in
|
|
||||||
refs/tags/* ) CLONE_TYPE=tag ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case $CLONE_TYPE in
|
|
||||||
pull_request)
|
|
||||||
clone-pull-request
|
|
||||||
;;
|
|
||||||
tag)
|
|
||||||
clone-tag
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
clone-commit
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
`
|
|
||||||
|
|
||||||
// Contents of clone-commit
|
|
||||||
const CloneCommit = `#!/bin/sh
|
|
||||||
|
|
||||||
FLAGS=""
|
|
||||||
if [[ ! -z "${PLUGIN_DEPTH}" ]]; then
|
|
||||||
FLAGS="--depth=${PLUGIN_DEPTH}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d .git ]; then
|
|
||||||
git init
|
|
||||||
git remote add origin ${DRONE_REMOTE_URL}
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
|
|
||||||
git fetch ${FLAGS} origin +refs/heads/${DRONE_COMMIT_BRANCH}:
|
|
||||||
git checkout ${DRONE_COMMIT_SHA} -b ${DRONE_COMMIT_BRANCH}
|
|
||||||
`
|
|
||||||
|
|
||||||
// Contents of clone-pull-request
|
|
||||||
const ClonePullRequest = `#!/bin/sh
|
|
||||||
|
|
||||||
FLAGS=""
|
|
||||||
if [[ ! -z "${PLUGIN_DEPTH}" ]]; then
|
|
||||||
FLAGS="--depth=${PLUGIN_DEPTH}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d .git ]; then
|
|
||||||
git init
|
|
||||||
git remote add origin ${DRONE_REMOTE_URL}
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
|
|
||||||
git fetch ${FLAGS} origin +refs/heads/${DRONE_COMMIT_BRANCH}:
|
|
||||||
git checkout ${DRONE_COMMIT_BRANCH}
|
|
||||||
|
|
||||||
git fetch origin ${DRONE_COMMIT_REF}:
|
|
||||||
git merge ${DRONE_COMMIT_SHA}
|
|
||||||
`
|
|
||||||
|
|
||||||
// Contents of clone-tag
|
|
||||||
const CloneTag = `#!/bin/sh
|
|
||||||
|
|
||||||
FLAGS=""
|
|
||||||
if [[ ! -z "${PLUGIN_DEPTH}" ]]; then
|
|
||||||
FLAGS="--depth=${PLUGIN_DEPTH}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d .git ]; then
|
|
||||||
git init
|
|
||||||
git remote add origin ${DRONE_REMOTE_URL}
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -x
|
|
||||||
|
|
||||||
git fetch ${FLAGS} origin +refs/tags/${DRONE_TAG}:
|
|
||||||
git checkout -qf FETCH_HEAD
|
|
||||||
`
|
|
||||||
|
|
@ -1,259 +0,0 @@
|
|||||||
package posix
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
|
||||||
"os/exec"
|
|
||||||
"path/filepath"
|
|
||||||
"strings"
|
|
||||||
"testing"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestCommits(t *testing.T) {
|
|
||||||
remote := "/tmp/remote/greeting"
|
|
||||||
|
|
||||||
base, err := ioutil.TempDir("", "test")
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer os.Remove(base)
|
|
||||||
|
|
||||||
for i, test := range tests {
|
|
||||||
local := filepath.Join(base, fmt.Sprint(i))
|
|
||||||
err = os.MkdirAll(local, 0777)
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
bin, err := filepath.Abs("clone-commit")
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
cmd := exec.Command(bin)
|
|
||||||
cmd.Dir = local
|
|
||||||
cmd.Env = []string{
|
|
||||||
fmt.Sprintf("DRONE_COMMIT_BRANCH=%s", test.branch),
|
|
||||||
fmt.Sprintf("DRONE_COMMIT_SHA=%s", test.commit),
|
|
||||||
fmt.Sprintf("DRONE_WORKSPACE=%s", local),
|
|
||||||
fmt.Sprintf("DRONE_REMOTE_URL=%s", remote),
|
|
||||||
}
|
|
||||||
|
|
||||||
out, err := cmd.CombinedOutput()
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
t.Log(string(out))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
commit, err := getCommit(local)
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
branch, err := getBranch(local)
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if want, got := test.commit, commit; got != want {
|
|
||||||
t.Errorf("Want commit %s, got %s", want, got)
|
|
||||||
}
|
|
||||||
|
|
||||||
if want, got := test.branch, branch; got != want {
|
|
||||||
t.Errorf("Want branch %s, got %s", want, got)
|
|
||||||
}
|
|
||||||
|
|
||||||
file := filepath.Join(local, test.file)
|
|
||||||
out, err = ioutil.ReadFile(file)
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if want, got := test.text, string(out); want != got {
|
|
||||||
t.Errorf("Want file content %q, got %q", want, got)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestTags(t *testing.T) {
|
|
||||||
remote := "/tmp/remote/greeting"
|
|
||||||
|
|
||||||
base, err := ioutil.TempDir("", "test")
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer os.Remove(base)
|
|
||||||
|
|
||||||
for i, test := range tests {
|
|
||||||
local := filepath.Join(base, fmt.Sprint(i))
|
|
||||||
err = os.MkdirAll(local, 0777)
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
bin, err := filepath.Abs("clone-tag")
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
cmd := exec.Command(bin)
|
|
||||||
cmd.Dir = local
|
|
||||||
cmd.Env = []string{
|
|
||||||
fmt.Sprintf("DRONE_TAG=%s", test.tag),
|
|
||||||
fmt.Sprintf("DRONE_COMMIT_SHA=%s", test.commit),
|
|
||||||
fmt.Sprintf("DRONE_WORKSPACE=%s", local),
|
|
||||||
fmt.Sprintf("DRONE_REMOTE_URL=%s", remote),
|
|
||||||
}
|
|
||||||
|
|
||||||
out, err := cmd.CombinedOutput()
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
t.Log(string(out))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
commit, err := getCommit(local)
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if want, got := test.commit, commit; got != want {
|
|
||||||
t.Errorf("Want commit %s, got %s", want, got)
|
|
||||||
}
|
|
||||||
|
|
||||||
file := filepath.Join(local, test.file)
|
|
||||||
out, err = ioutil.ReadFile(file)
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if want, got := test.text, string(out); want != got {
|
|
||||||
t.Errorf("Want file content %q, got %q", want, got)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestPullRequest(t *testing.T) {
|
|
||||||
remote := "https://github.com/octocat/Spoon-Knife.git"
|
|
||||||
|
|
||||||
local, err := ioutil.TempDir("", "test")
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer os.Remove(local)
|
|
||||||
|
|
||||||
bin, err := filepath.Abs("clone-pull-request")
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
cmd := exec.Command(bin)
|
|
||||||
cmd.Dir = local
|
|
||||||
cmd.Env = []string{
|
|
||||||
fmt.Sprintf("DRONE_COMMIT_REF=%s", "refs/pull/14596/head"),
|
|
||||||
fmt.Sprintf("DRONE_COMMIT_BRANCH=%s", "main"),
|
|
||||||
fmt.Sprintf("DRONE_COMMIT_SHA=%s", "26923a8f37933ccc23943de0d4ebd53908268582"),
|
|
||||||
fmt.Sprintf("DRONE_WORKSPACE=%s", local),
|
|
||||||
fmt.Sprintf("DRONE_REMOTE_URL=%s", remote),
|
|
||||||
}
|
|
||||||
|
|
||||||
out, err := cmd.CombinedOutput()
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
t.Log(string(out))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
commit, err := getCommit(local)
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
branch, err := getBranch(local)
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if want, got := "26923a8f37933ccc23943de0d4ebd53908268582", commit; got != want {
|
|
||||||
t.Errorf("Want commit %s, got %s", want, got)
|
|
||||||
}
|
|
||||||
|
|
||||||
if want, got := "main", branch; got != want {
|
|
||||||
t.Errorf("Want branch %s, got %s", want, got)
|
|
||||||
}
|
|
||||||
|
|
||||||
file := filepath.Join(local, "directory/file.txt")
|
|
||||||
out, err = ioutil.ReadFile(file)
|
|
||||||
if err != nil {
|
|
||||||
t.Error(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func getBranch(path string) (string, error) {
|
|
||||||
cmd := exec.Command("git", "rev-parse", "--abbrev-ref", "HEAD")
|
|
||||||
cmd.Dir = path
|
|
||||||
out, err := cmd.CombinedOutput()
|
|
||||||
return strings.TrimSpace(string(out)), err
|
|
||||||
}
|
|
||||||
|
|
||||||
func getCommit(path string) (string, error) {
|
|
||||||
cmd := exec.Command("git", "rev-parse", "HEAD")
|
|
||||||
cmd.Dir = path
|
|
||||||
out, err := cmd.CombinedOutput()
|
|
||||||
return strings.TrimSpace(string(out)), err
|
|
||||||
}
|
|
||||||
|
|
||||||
var tests = []struct {
|
|
||||||
branch string
|
|
||||||
commit string
|
|
||||||
tag string
|
|
||||||
file string
|
|
||||||
text string
|
|
||||||
}{
|
|
||||||
{
|
|
||||||
commit: "9cd29dca0a98f76df94d66493ee54788a18190a0",
|
|
||||||
branch: "master",
|
|
||||||
tag: "v1.0.0",
|
|
||||||
file: "hello.txt",
|
|
||||||
text: "hi world\n",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
commit: "bbdf5d4028a6066431f59fcd8d83afff610a55ae",
|
|
||||||
branch: "master",
|
|
||||||
tag: "v1.1.0",
|
|
||||||
file: "hello.txt",
|
|
||||||
text: "hello world\n",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
commit: "553af1ca53c9ad54b096d7ff1416f6c4d1e5049f",
|
|
||||||
branch: "fr",
|
|
||||||
tag: "v2.0.0",
|
|
||||||
file: "hello.txt",
|
|
||||||
text: "salut monde\n",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
commit: "94b4a1710d1581b8b00c5f7b077026eae3c07646",
|
|
||||||
branch: "fr",
|
|
||||||
tag: "v2.1.0",
|
|
||||||
file: "hello.txt",
|
|
||||||
text: "bonjour monde\n",
|
|
||||||
},
|
|
||||||
}
|
|
37
renovate.json
Normal file
37
renovate.json
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
|
"assignees": [ "volker.raschek" ],
|
||||||
|
"automergeStrategy": "merge-commit",
|
||||||
|
"automergeType": "pr",
|
||||||
|
"labels": [ "renovate" ],
|
||||||
|
"packageRules": [
|
||||||
|
{
|
||||||
|
"addLabels": [ "renovate/droneci", "renovate/automerge" ],
|
||||||
|
"automerge": true,
|
||||||
|
"excludePackagePatterns": [ "plugins/docker" ],
|
||||||
|
"matchManagers": "droneci",
|
||||||
|
"matchUpdateTypes": [ "minor", "patch"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Automatically update patch version of used container images in docker files",
|
||||||
|
"addLabels": [ "renovate/container-image", "renovate/automerge" ],
|
||||||
|
"automerge": true,
|
||||||
|
"matchBaseBranches": [ "master" ],
|
||||||
|
"matchManagers": [ "dockerfile" ],
|
||||||
|
"matchUpdateTypes": [ "patch" ]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"rebaseLabel": "renovate/rebase",
|
||||||
|
"rebaseWhen": "behind-base-branch",
|
||||||
|
"regexManagers": [
|
||||||
|
{
|
||||||
|
"description": "Update version",
|
||||||
|
"fileMatch": [
|
||||||
|
"^Makefile$"
|
||||||
|
],
|
||||||
|
"matchStrings": [
|
||||||
|
"GOSEC_VERSION\\?=(?<currentValue>.*) # renovate: datasource=(?<datasource>.*) depName=(?<depName>.*)( lookupName=(?<lookupName>.*))?( versioning=(?<versioning>.*))?"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
|
|
||||||
if [[ -n "${DRONE_WORKSPACE}" ]]; then
|
if [[ -n "${DRONE_WORKSPACE}" ]]; then
|
||||||
# ensure the unprivileged drone user can write
|
# ensure the unprivileged drone user can write
|
||||||
@ -11,7 +11,7 @@ if [[ -n "${DRONE_WORKSPACE}" ]]; then
|
|||||||
# ensure the workspace is the current working
|
# ensure the workspace is the current working
|
||||||
# directory. This should already be the case,
|
# directory. This should already be the case,
|
||||||
# but we cd just to be safe.
|
# but we cd just to be safe.
|
||||||
cd ${DRONE_WORKSPACE}
|
cd "${DRONE_WORKSPACE}" || exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# force the home directory path.
|
# force the home directory path.
|
||||||
@ -24,8 +24,8 @@ fi
|
|||||||
# if the netrc enviornment variables exist, write
|
# if the netrc enviornment variables exist, write
|
||||||
# the netrc file.
|
# the netrc file.
|
||||||
|
|
||||||
if [[ ! -z "${DRONE_NETRC_MACHINE}" ]]; then
|
if [[ -n "${DRONE_NETRC_MACHINE}" ]]; then
|
||||||
cat <<EOF > ${HOME}/.netrc
|
cat <<EOF > "${HOME}/.netrc"
|
||||||
machine ${DRONE_NETRC_MACHINE}
|
machine ${DRONE_NETRC_MACHINE}
|
||||||
login ${DRONE_NETRC_USERNAME}
|
login ${DRONE_NETRC_USERNAME}
|
||||||
password ${DRONE_NETRC_PASSWORD}
|
password ${DRONE_NETRC_PASSWORD}
|
||||||
@ -35,24 +35,23 @@ fi
|
|||||||
# if the ssh_key environment variable exists, write
|
# if the ssh_key environment variable exists, write
|
||||||
# the ssh key and add the netrc machine to the
|
# the ssh key and add the netrc machine to the
|
||||||
# known hosts file.
|
# known hosts file.
|
||||||
|
if [[ -n "${DRONE_SSH_KEY}" ]]; then
|
||||||
|
mkdir "${HOME}/.ssh"
|
||||||
|
echo -n "${DRONE_SSH_KEY}" > "${HOME}/.ssh/id_rsa"
|
||||||
|
chmod 600 "${HOME}/.ssh/id_rsa"
|
||||||
|
|
||||||
if [[ ! -z "${DRONE_SSH_KEY}" ]]; then
|
touch "${HOME}/.ssh/known_hosts"
|
||||||
mkdir ${HOME}/.ssh
|
chmod 600 "${HOME}/.ssh/known_hosts"
|
||||||
echo -n "$DRONE_SSH_KEY" > ${HOME}/.ssh/id_rsa
|
ssh-keyscan -H "${DRONE_NETRC_MACHINE}" > /etc/ssh/ssh_known_hosts 2> /dev/null
|
||||||
chmod 600 ${HOME}/.ssh/id_rsa
|
|
||||||
|
|
||||||
touch ${HOME}/.ssh/known_hosts
|
|
||||||
chmod 600 ${HOME}/.ssh/known_hosts
|
|
||||||
ssh-keyscan -H ${DRONE_NETRC_MACHINE} > /etc/ssh/ssh_known_hosts 2> /dev/null
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# AWS codecommit support using AWS access key & secret key
|
# AWS codecommit support using AWS access key & secret key
|
||||||
# Refer: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-unixes.html
|
# Refer: https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-unixes.html
|
||||||
|
|
||||||
if [[ ! -z "$DRONE_AWS_ACCESS_KEY" ]]; then
|
if [[ -n "${DRONE_AWS_ACCESS_KEY}" ]]; then
|
||||||
aws configure set aws_access_key_id $DRONE_AWS_ACCESS_KEY
|
aws configure set aws_access_key_id "${DRONE_AWS_ACCESS_KEY}"
|
||||||
aws configure set aws_secret_access_key $DRONE_AWS_SECRET_KEY
|
aws configure set aws_secret_access_key "${DRONE_AWS_SECRET_KEY}"
|
||||||
aws configure set default.region $DRONE_AWS_REGION
|
aws configure set default.region "${DRONE_AWS_REGION}"
|
||||||
|
|
||||||
git config --global credential.helper '!aws codecommit credential-helper $@'
|
git config --global credential.helper '!aws codecommit credential-helper $@'
|
||||||
git config --global credential.UseHttpPath true
|
git config --global credential.UseHttpPath true
|
||||||
@ -79,12 +78,20 @@ export GIT_COMMITTER_EMAIL=${DRONE_COMMIT_AUTHOR_EMAIL}
|
|||||||
# TODO we should ultimately look at the ref, since
|
# TODO we should ultimately look at the ref, since
|
||||||
# we need something compatible with deployment events.
|
# we need something compatible with deployment events.
|
||||||
|
|
||||||
CLONE_TYPE=$DRONE_BUILD_EVENT
|
CLONE_TYPE=${DRONE_BUILD_EVENT}
|
||||||
case $DRONE_COMMIT_REF in
|
case ${DRONE_COMMIT_REF} in
|
||||||
refs/tags/* ) CLONE_TYPE=tag ;;
|
refs/tags/*)
|
||||||
refs/pull/* ) CLONE_TYPE=pull_request ;;
|
CLONE_TYPE=tag
|
||||||
refs/pull-request/* ) CLONE_TYPE=pull_request ;;
|
;;
|
||||||
refs/merge-requests/* ) CLONE_TYPE=pull_request ;;
|
refs/pull/*)
|
||||||
|
CLONE_TYPE=pull_request
|
||||||
|
;;
|
||||||
|
refs/pull-request/*)
|
||||||
|
CLONE_TYPE=pull_request
|
||||||
|
;;
|
||||||
|
refs/merge-requests/*)
|
||||||
|
CLONE_TYPE=pull_request
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
git_clone_retry(){
|
git_clone_retry(){
|
||||||
@ -100,11 +107,11 @@ git_clone_retry(){
|
|||||||
$1 && return
|
$1 && return
|
||||||
n=$((n+1))
|
n=$((n+1))
|
||||||
done
|
done
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
case $CLONE_TYPE in
|
case ${CLONE_TYPE} in
|
||||||
pull_request)
|
pull_request)
|
||||||
git_clone_retry clone-pull-request
|
git_clone_retry clone-pull-request
|
||||||
;;
|
;;
|
@ -1,13 +1,15 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
FLAGS=""
|
FLAGS=""
|
||||||
if [[ ! -z "${PLUGIN_DEPTH}" ]]; then
|
if [[ -n "${PLUGIN_DEPTH}" ]]; then
|
||||||
FLAGS="--depth=${PLUGIN_DEPTH}"
|
FLAGS="--depth=${PLUGIN_DEPTH}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d .git ]; then
|
if [ ! -d .git ]; then
|
||||||
git init
|
git init
|
||||||
git remote add origin ${DRONE_REMOTE_URL}
|
git remote add origin "${DRONE_REMOTE_URL}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# the branch may be empty for certain event types,
|
# the branch may be empty for certain event types,
|
||||||
@ -19,7 +21,7 @@ if [[ -z "${DRONE_COMMIT_BRANCH}" ]]; then
|
|||||||
set -e
|
set -e
|
||||||
set -x
|
set -x
|
||||||
git fetch origin
|
git fetch origin
|
||||||
git checkout -qf ${DRONE_COMMIT_SHA}
|
git checkout --quiet --force "${DRONE_COMMIT_SHA}"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -29,13 +31,13 @@ fi
|
|||||||
if [[ -z "${DRONE_COMMIT_SHA}" ]]; then
|
if [[ -z "${DRONE_COMMIT_SHA}" ]]; then
|
||||||
set -e
|
set -e
|
||||||
set -x
|
set -x
|
||||||
git fetch ${FLAGS} origin +refs/heads/${DRONE_COMMIT_BRANCH}:
|
git fetch "${FLAGS}" origin "+refs/heads/${DRONE_COMMIT_BRANCH}:"
|
||||||
git checkout -b ${DRONE_COMMIT_BRANCH} origin/${DRONE_COMMIT_BRANCH}
|
git checkout -b "${DRONE_COMMIT_BRANCH}" "origin/${DRONE_COMMIT_BRANCH}"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
git fetch ${FLAGS} origin +refs/heads/${DRONE_COMMIT_BRANCH}:
|
git fetch "${FLAGS}" origin "+refs/heads/${DRONE_COMMIT_BRANCH}:"
|
||||||
git checkout ${DRONE_COMMIT_SHA} -b ${DRONE_COMMIT_BRANCH}
|
git checkout "${DRONE_COMMIT_SHA}" -b "${DRONE_COMMIT_BRANCH}"
|
20
rootfs/usr/local/bin/clone-pull-request
Executable file
20
rootfs/usr/local/bin/clone-pull-request
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
FLAGS=""
|
||||||
|
if [[ -n "${PLUGIN_DEPTH}" ]]; then
|
||||||
|
FLAGS="--depth=${PLUGIN_DEPTH}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d .git ]; then
|
||||||
|
git init
|
||||||
|
git remote add origin "${DRONE_REMOTE_URL}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
git fetch "${FLAGS}" origin "+refs/heads/${DRONE_COMMIT_BRANCH}:"
|
||||||
|
git checkout "${DRONE_COMMIT_BRANCH}"
|
||||||
|
|
||||||
|
git fetch origin "${DRONE_COMMIT_REF}:"
|
||||||
|
git merge "${DRONE_COMMIT_SHA}"
|
17
rootfs/usr/local/bin/clone-tag
Executable file
17
rootfs/usr/local/bin/clone-tag
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
FLAGS=""
|
||||||
|
if [[ -n "${PLUGIN_DEPTH}" ]]; then
|
||||||
|
FLAGS="--depth=${PLUGIN_DEPTH}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d .git ]; then
|
||||||
|
git init
|
||||||
|
git remote add origin "${DRONE_REMOTE_URL}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
git fetch "${FLAGS}" origin "+refs/tags/${DRONE_TAG}:"
|
||||||
|
git checkout --quiet --force FETCH_HEAD
|
1
rootfs/usr/share/licenses/LICENSE
Symbolic link
1
rootfs/usr/share/licenses/LICENSE
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../../LICENSE
|
@ -1,87 +0,0 @@
|
|||||||
// +build ignore
|
|
||||||
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"flag"
|
|
||||||
"io/ioutil"
|
|
||||||
"log"
|
|
||||||
"path/filepath"
|
|
||||||
"strings"
|
|
||||||
"text/template"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
input stringSlice
|
|
||||||
output string
|
|
||||||
name string
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
flag.Var(&input, "input", "input files")
|
|
||||||
flag.StringVar(&output, "output", "", "output file")
|
|
||||||
flag.StringVar(&name, "package", "", "package name")
|
|
||||||
flag.Parse()
|
|
||||||
|
|
||||||
var files []File
|
|
||||||
for _, file := range input {
|
|
||||||
out, err := ioutil.ReadFile(file)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalln(err)
|
|
||||||
}
|
|
||||||
files = append(files, File{
|
|
||||||
Name: file,
|
|
||||||
Slug: slugify(file),
|
|
||||||
Data: string(out),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
data := map[string]interface{}{
|
|
||||||
"Files": files,
|
|
||||||
"Package": name,
|
|
||||||
}
|
|
||||||
buf := new(bytes.Buffer)
|
|
||||||
err := tmpl.Execute(buf, data)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalln(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
ioutil.WriteFile(output, buf.Bytes(), 0644)
|
|
||||||
}
|
|
||||||
|
|
||||||
func slugify(s string) string {
|
|
||||||
ext := filepath.Ext(s)
|
|
||||||
s = strings.TrimSuffix(s, ext)
|
|
||||||
s = strings.Title(s)
|
|
||||||
s = strings.ReplaceAll(s, "-", "")
|
|
||||||
s = strings.ReplaceAll(s, "_", "")
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
type stringSlice []string
|
|
||||||
|
|
||||||
func (s *stringSlice) String() string {
|
|
||||||
return strings.Join(*s, ",")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *stringSlice) Set(value string) error {
|
|
||||||
*s = append(*s, value)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type File struct {
|
|
||||||
Name string
|
|
||||||
Data string
|
|
||||||
Slug string
|
|
||||||
}
|
|
||||||
|
|
||||||
var tmpl = template.Must(template.New("_").Parse(`package {{ .Package }}
|
|
||||||
|
|
||||||
// DO NOT EDIT. This file is automatically generated.
|
|
||||||
|
|
||||||
{{ range .Files -}}
|
|
||||||
// Contents of {{ .Name }}
|
|
||||||
const {{ .Slug }} = ` + "`{{ .Data }}`" + `
|
|
||||||
|
|
||||||
{{ end -}}`))
|
|
@ -1,17 +0,0 @@
|
|||||||
|
|
||||||
Set-Variable -Name "FLAGS" -Value ""
|
|
||||||
if ($Env:PLUGIN_DEPTH) {
|
|
||||||
Set-Variable -Name "FLAGS" -Value "--depth=$Env:PLUGIN_DEPTH"
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(Test-Path .git)) {
|
|
||||||
Write-Host 'git init';
|
|
||||||
git init
|
|
||||||
Write-Host "git remote add origin $Env:DRONE_REMOTE_URL"
|
|
||||||
git remote add origin $Env:DRONE_REMOTE_URL
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Host "git fetch $FLAGS origin +refs/heads/${Env:DRONE_COMMIT_BRANCH}:";
|
|
||||||
git fetch $FLAGS origin "+refs/heads/${Env:DRONE_COMMIT_BRANCH}:";
|
|
||||||
Write-Host "git checkout $Env:DRONE_COMMIT_SHA -f $Env:DRONE_COMMIT_BRANCH";
|
|
||||||
git checkout $Env:DRONE_COMMIT_SHA -b $Env:DRONE_COMMIT_BRANCH;
|
|
@ -1,16 +0,0 @@
|
|||||||
|
|
||||||
Set-Variable -Name "FLAGS" -Value ""
|
|
||||||
if ($Env:PLUGIN_DEPTH) {
|
|
||||||
Set-Variable -Name "FLAGS" -Value "--depth=$Env:PLUGIN_DEPTH"
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(Test-Path .git)) {
|
|
||||||
git init
|
|
||||||
git remote add origin $Env:DRONE_REMOTE_URL
|
|
||||||
}
|
|
||||||
|
|
||||||
git fetch $FLAGS origin "+refs/heads/${Env:DRONE_COMMIT_BRANCH}:"
|
|
||||||
git checkout $Env:DRONE_COMMIT_BRANCH
|
|
||||||
|
|
||||||
git fetch origin "${Env:DRONE_COMMIT_REF}:"
|
|
||||||
git merge $Env:DRONE_COMMIT_SHA
|
|
@ -1,13 +0,0 @@
|
|||||||
|
|
||||||
Set-Variable -Name "FLAGS" -Value ""
|
|
||||||
if ($Env:PLUGIN_DEPTH) {
|
|
||||||
Set-Variable -Name "FLAGS" -Value "--depth=$Env:PLUGIN_DEPTH"
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(Test-Path .git)) {
|
|
||||||
git init
|
|
||||||
git remote add origin $Env:DRONE_REMOTE_URL
|
|
||||||
}
|
|
||||||
|
|
||||||
git fetch $FLAGS origin "+refs/tags/${Env:DRONE_TAG}:"
|
|
||||||
git checkout -qf FETCH_HEAD
|
|
@ -1,64 +0,0 @@
|
|||||||
$ErrorActionPreference = 'Stop';
|
|
||||||
|
|
||||||
# HACK: no clue how to set the PATH inside the Dockerfile,
|
|
||||||
# so am setting it here instead. This is not idea.
|
|
||||||
$Env:PATH += ';C:\git\cmd;C:\git\mingw64\bin;C:\git\usr\bin'
|
|
||||||
|
|
||||||
# if the workspace is set we should make sure
|
|
||||||
# it is the current working directory.
|
|
||||||
|
|
||||||
if ($Env:DRONE_WORKSPACE) {
|
|
||||||
cd $Env:DRONE_WORKSPACE
|
|
||||||
}
|
|
||||||
|
|
||||||
# if the netrc enviornment variables exist, write
|
|
||||||
# the netrc file.
|
|
||||||
|
|
||||||
if ($Env:DRONE_NETRC_MACHINE) {
|
|
||||||
@"
|
|
||||||
machine $Env:DRONE_NETRC_MACHINE
|
|
||||||
login $Env:DRONE_NETRC_USERNAME
|
|
||||||
password $Env:DRONE_NETRC_PASSWORD
|
|
||||||
"@ > (Join-Path $Env:USERPROFILE '_netrc');
|
|
||||||
}
|
|
||||||
|
|
||||||
# configure git global behavior and parameters via the
|
|
||||||
# following environment variables:
|
|
||||||
|
|
||||||
if ($Env:PLUGIN_SKIP_VERIFY) {
|
|
||||||
$Env:GIT_SSL_NO_VERIFY = "true"
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($Env:DRONE_COMMIT_AUTHOR_NAME -eq '' -or $Env:DRONE_COMMIT_AUTHOR_NAME -eq $null) {
|
|
||||||
$Env:GIT_AUTHOR_NAME = "drone"
|
|
||||||
} else {
|
|
||||||
$Env:GIT_AUTHOR_NAME = $Env:DRONE_COMMIT_AUTHOR_NAME
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($Env:DRONE_COMMIT_AUTHOR_EMAIL -eq '' -or $Env:DRONE_COMMIT_AUTHOR_EMAIL -eq $null) {
|
|
||||||
$Env:GIT_AUTHOR_EMAIL = 'drone@localhost'
|
|
||||||
} else {
|
|
||||||
$Env:GIT_AUTHOR_EMAIL = $Env:DRONE_COMMIT_AUTHOR_EMAIL
|
|
||||||
}
|
|
||||||
|
|
||||||
$Env:GIT_COMMITTER_NAME = $Env:GIT_AUTHOR_NAME
|
|
||||||
$Env:GIT_COMMITTER_EMAIL = $Env:GIT_AUTHOR_EMAIL
|
|
||||||
|
|
||||||
# invoke the sub-script based on the drone event type.
|
|
||||||
# TODO we should ultimately look at the ref, since
|
|
||||||
# we need something compatible with deployment events.
|
|
||||||
|
|
||||||
switch ($Env:DRONE_BUILD_EVENT) {
|
|
||||||
"pull_request" {
|
|
||||||
Invoke-Expression "${PSScriptRoot}\clone-pull-request.ps1"
|
|
||||||
break
|
|
||||||
}
|
|
||||||
"tag" {
|
|
||||||
Invoke-Expression "${PSScriptRoot}\clone-tag.ps1"
|
|
||||||
break
|
|
||||||
}
|
|
||||||
default {
|
|
||||||
Invoke-Expression "${PSScriptRoot}\clone-commit.ps1"
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
package windows
|
|
||||||
|
|
||||||
//go:generate go run ../scripts/includetext.go --input=clone.ps1 --input=clone-commit.ps1 --input=clone-pull-request.ps1 --input=clone-tag.ps1 --package=windows --output=windows_gen.go
|
|
@ -1,126 +0,0 @@
|
|||||||
package windows
|
|
||||||
|
|
||||||
// DO NOT EDIT. This file is automatically generated.
|
|
||||||
|
|
||||||
// Contents of clone.ps1
|
|
||||||
const Clone = `$ErrorActionPreference = 'Stop';
|
|
||||||
|
|
||||||
# HACK: no clue how to set the PATH inside the Dockerfile,
|
|
||||||
# so am setting it here instead. This is not idea.
|
|
||||||
$Env:PATH += ';C:\git\cmd;C:\git\mingw64\bin;C:\git\usr\bin'
|
|
||||||
|
|
||||||
# if the workspace is set we should make sure
|
|
||||||
# it is the current working directory.
|
|
||||||
|
|
||||||
if ($Env:DRONE_WORKSPACE) {
|
|
||||||
cd $Env:DRONE_WORKSPACE
|
|
||||||
}
|
|
||||||
|
|
||||||
# if the netrc enviornment variables exist, write
|
|
||||||
# the netrc file.
|
|
||||||
|
|
||||||
if ($Env:DRONE_NETRC_MACHINE) {
|
|
||||||
@"
|
|
||||||
machine $Env:DRONE_NETRC_MACHINE
|
|
||||||
login $Env:DRONE_NETRC_USERNAME
|
|
||||||
password $Env:DRONE_NETRC_PASSWORD
|
|
||||||
"@ > (Join-Path $Env:USERPROFILE '_netrc');
|
|
||||||
}
|
|
||||||
|
|
||||||
# configure git global behavior and parameters via the
|
|
||||||
# following environment variables:
|
|
||||||
|
|
||||||
if ($Env:PLUGIN_SKIP_VERIFY) {
|
|
||||||
$Env:GIT_SSL_NO_VERIFY = "true"
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($Env:DRONE_COMMIT_AUTHOR_NAME -eq '' -or $Env:DRONE_COMMIT_AUTHOR_NAME -eq $null) {
|
|
||||||
$Env:GIT_AUTHOR_NAME = "drone"
|
|
||||||
} else {
|
|
||||||
$Env:GIT_AUTHOR_NAME = $Env:DRONE_COMMIT_AUTHOR_NAME
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($Env:DRONE_COMMIT_AUTHOR_EMAIL -eq '' -or $Env:DRONE_COMMIT_AUTHOR_EMAIL -eq $null) {
|
|
||||||
$Env:GIT_AUTHOR_EMAIL = 'drone@localhost'
|
|
||||||
} else {
|
|
||||||
$Env:GIT_AUTHOR_EMAIL = $Env:DRONE_COMMIT_AUTHOR_EMAIL
|
|
||||||
}
|
|
||||||
|
|
||||||
$Env:GIT_COMMITTER_NAME = $Env:GIT_AUTHOR_NAME
|
|
||||||
$Env:GIT_COMMITTER_EMAIL = $Env:GIT_AUTHOR_EMAIL
|
|
||||||
|
|
||||||
# invoke the sub-script based on the drone event type.
|
|
||||||
# TODO we should ultimately look at the ref, since
|
|
||||||
# we need something compatible with deployment events.
|
|
||||||
|
|
||||||
switch ($Env:DRONE_BUILD_EVENT) {
|
|
||||||
"pull_request" {
|
|
||||||
Invoke-Expression "${PSScriptRoot}\clone-pull-request.ps1"
|
|
||||||
break
|
|
||||||
}
|
|
||||||
"tag" {
|
|
||||||
Invoke-Expression "${PSScriptRoot}\clone-tag.ps1"
|
|
||||||
break
|
|
||||||
}
|
|
||||||
default {
|
|
||||||
Invoke-Expression "${PSScriptRoot}\clone-commit.ps1"
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`
|
|
||||||
|
|
||||||
// Contents of clone-commit.ps1
|
|
||||||
const CloneCommit = `
|
|
||||||
Set-Variable -Name "FLAGS" -Value ""
|
|
||||||
if ($Env:PLUGIN_DEPTH) {
|
|
||||||
Set-Variable -Name "FLAGS" -Value "--depth=$Env:PLUGIN_DEPTH"
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(Test-Path .git)) {
|
|
||||||
Write-Host 'git init';
|
|
||||||
git init
|
|
||||||
Write-Host "git remote add origin $Env:DRONE_REMOTE_URL"
|
|
||||||
git remote add origin $Env:DRONE_REMOTE_URL
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Host "git fetch $FLAGS origin +refs/heads/${Env:DRONE_COMMIT_BRANCH}:";
|
|
||||||
git fetch $FLAGS origin "+refs/heads/${Env:DRONE_COMMIT_BRANCH}:";
|
|
||||||
Write-Host "git checkout $Env:DRONE_COMMIT_SHA -f $Env:DRONE_COMMIT_BRANCH";
|
|
||||||
git checkout $Env:DRONE_COMMIT_SHA -b $Env:DRONE_COMMIT_BRANCH;
|
|
||||||
`
|
|
||||||
|
|
||||||
// Contents of clone-pull-request.ps1
|
|
||||||
const ClonePullRequest = `
|
|
||||||
Set-Variable -Name "FLAGS" -Value ""
|
|
||||||
if ($Env:PLUGIN_DEPTH) {
|
|
||||||
Set-Variable -Name "FLAGS" -Value "--depth=$Env:PLUGIN_DEPTH"
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(Test-Path .git)) {
|
|
||||||
git init
|
|
||||||
git remote add origin $Env:DRONE_REMOTE_URL
|
|
||||||
}
|
|
||||||
|
|
||||||
git fetch $FLAGS origin "+refs/heads/${Env:DRONE_COMMIT_BRANCH}:"
|
|
||||||
git checkout $Env:DRONE_COMMIT_BRANCH
|
|
||||||
|
|
||||||
git fetch origin "${Env:DRONE_COMMIT_REF}:"
|
|
||||||
git merge $Env:DRONE_COMMIT_SHA
|
|
||||||
`
|
|
||||||
|
|
||||||
// Contents of clone-tag.ps1
|
|
||||||
const CloneTag = `
|
|
||||||
Set-Variable -Name "FLAGS" -Value ""
|
|
||||||
if ($Env:PLUGIN_DEPTH) {
|
|
||||||
Set-Variable -Name "FLAGS" -Value "--depth=$Env:PLUGIN_DEPTH"
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(Test-Path .git)) {
|
|
||||||
git init
|
|
||||||
git remote add origin $Env:DRONE_REMOTE_URL
|
|
||||||
}
|
|
||||||
|
|
||||||
git fetch $FLAGS origin "+refs/tags/${Env:DRONE_TAG}:"
|
|
||||||
git checkout -qf FETCH_HEAD
|
|
||||||
`
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user