quickrun
Some checks failed
ci/woodpecker/push/compliance-and-tests Pipeline is pending
ci/woodpecker/push/release-version Pipeline is pending
ci/woodpecker/tag/compliance-and-tests Pipeline was successful
ci/woodpecker/tag/release-version Pipeline failed

This commit is contained in:
gapodo 2022-12-06 14:32:27 +01:00
parent 6746143b36
commit dc8a83a8d3
3 changed files with 129 additions and 113 deletions

View file

@ -9,105 +9,105 @@ variables:
- &gitea_test_env_image 'gitea/test_env:linux-amd64' - &gitea_test_env_image 'gitea/test_env:linux-amd64'
pipeline: pipeline:
# dummy: dummy:
image: *golang_image
commands:
- exit 0
# deps-backend:
# image: *golang_image # image: *golang_image
# pull: true
# secrets:
# - goproxy_override
# commands: # commands:
# - exit 0 # - test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
deps-backend: # - make deps-backend
image: *golang_image
pull: true
secrets:
- goproxy_override
commands:
- test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
- make deps-backend
security-check: # security-check:
image: *golang_image # image: *golang_image
pull: true # pull: true
secrets: # secrets:
- goproxy_override # - goproxy_override
commands: # commands:
- test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}" # - test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
- make security-check # - make security-check
lint-backend: # lint-backend:
image: *gitea_test_env_image # image: *gitea_test_env_image
pull: true # pull: true
secrets: # secrets:
- goproxy_override # - goproxy_override
environment: # environment:
- TAGS=bindata sqlite sqlite_unlock_notify # - TAGS=bindata sqlite sqlite_unlock_notify
- GOSUMDB=sum.golang.org # - GOSUMDB=sum.golang.org
commands: # commands:
- test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}" # - test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
- make lint-backend # - make lint-backend
checks-backend: # checks-backend:
image: *golang_image # image: *golang_image
pull: true # pull: true
secrets: # secrets:
- goproxy_override # - goproxy_override
commands: # commands:
- test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}" # - test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
- make --always-make checks-backend # - make --always-make checks-backend
fetch-tags: # fetch-tags:
image: docker:git # image: docker:git
pull: true # pull: true
commands: # commands:
- git config --add safe.directory '*' # - git config --add safe.directory '*'
- git fetch --tags --force # - git fetch --tags --force
tag-pre-condition: # tag-pre-condition:
image: drone/git # image: drone/git
pull: true # pull: true
commands: # commands:
- git update-ref refs/heads/tag_test ${CI_COMMIT_SHA} # - git update-ref refs/heads/tag_test ${CI_COMMIT_SHA}
prepare-test-env: # prepare-test-env:
image: *gitea_test_env_image # image: *gitea_test_env_image
pull: true # pull: true
secrets: # secrets:
- goproxy_override # - goproxy_override
commands: # commands:
- test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}" # - test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
- ./build/test-env-prepare.sh # - ./build/test-env-prepare.sh
build-test: # build-test:
image: *gitea_test_env_image # image: *gitea_test_env_image
pull: true # pull: true
secrets: # secrets:
- goproxy_override # - goproxy_override
environment: # environment:
- GOSUMDB=sum.golang.org # - GOSUMDB=sum.golang.org
- TAGS=bindata sqlite sqlite_unlock_notify # - TAGS=bindata sqlite sqlite_unlock_notify
commands: # commands:
- test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}" # - test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
- su gitea -c './build/test-env-check.sh' # - su gitea -c './build/test-env-check.sh'
- su gitea -c 'make backend' # - su gitea -c 'make backend'
unit-test: # unit-test:
image: *gitea_test_env_image # image: *gitea_test_env_image
pull: true # pull: true
secrets: # secrets:
- github_read_token # - github_read_token
- goproxy_override # - goproxy_override
environment: # environment:
- TAGS=bindata sqlite sqlite_unlock_notify # - TAGS=bindata sqlite sqlite_unlock_notify
- RACE_ENABLED=true # - RACE_ENABLED=true
commands: # commands:
- test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}" # - test "$${GOPROXY_OVERRIDE-}" != "" && export GOPROXY="$${GOPROXY_OVERRIDE}"
- su gitea -c 'make unit-test-coverage test-check' # - su gitea -c 'make unit-test-coverage test-check'
test-sqlite: # test-sqlite:
image: *gitea_test_env_image # image: *gitea_test_env_image
environment: # environment:
- USE_REPO_TEST_DIR=1 # - USE_REPO_TEST_DIR=1
- GOPROXY=off # - GOPROXY=off
- TAGS=bindata gogit sqlite sqlite_unlock_notify # - TAGS=bindata gogit sqlite sqlite_unlock_notify
- TEST_TAGS=bindata gogit sqlite sqlite_unlock_notify # - TEST_TAGS=bindata gogit sqlite sqlite_unlock_notify
commands: # commands:
- su gitea -c 'timeout -s ABRT 120m make test-sqlite-migration test-sqlite' # - su gitea -c 'timeout -s ABRT 120m make test-sqlite-migration test-sqlite'
when: # when:
- evaluate: 'not (CI_COMMIT_MESSAGE contains "[SKIP SQLITE TEST]")' # - evaluate: 'not (CI_COMMIT_MESSAGE contains "[SKIP SQLITE TEST]")'

View file

@ -101,15 +101,14 @@ pipeline:
- releaseteamuser - releaseteamuser
prep-multiarch-binaries: prep-multiarch-binaries:
image: *golang_image # image reuse to reduce pull times, go not required image: *golang_image # image reuse to reduce pull times, go not required we just need bash
pull: true pull: true
# the fallback version-name used by make, defaults to main in the script use this if we change the default name # the fallback version-name used by make, defaults to main in the script use this if we change the default name
# environment: # environment:
# defaulttagname: main # defaulttagname: main
commands: commands:
- mkdir docker/bin - ./docker/map-binaries.sh ./dist/binaries forgejo gitea ${CI_COMMIT_TAG##v}
- bash -c './docker/map-binaries.sh ./dist/binaries forgejo gitea ${CI_COMMIT_TAG##v}' - ./docker/map-binaries.sh ./dist/contrib environment-to-ini false ${CI_COMMIT_TAG##v}
- bash -c './docker/map-binaries.sh ./dist/contrib environment-to-ini false ${CI_COMMIT_TAG##v}'
when: when:
event: tag event: tag

View file

@ -1,9 +1,13 @@
#!/bin/bash #!/bin/bash
errcho () {
echo "${@}" >&2
}
if [ ${#@} -lt 3 ]; then if [ ${#@} -lt 3 ]; then
echo "not enough arguments provided" 1>&2 errcho "not enough arguments provided"
echo "syntax: ${0} <path directly containing the binary> <base name of the binary> <target name or false> [<version tag as in the file name>]" echo "syntax: ${0} <path directly containing the binary> <base name of the binary> <target name or false> [<version tag as in the file name>]"
exit 1 exit 2
fi fi
BINARYLOOKUPPATH="${1}" BINARYLOOKUPPATH="${1}"
@ -11,48 +15,61 @@ FILEBASENAME="${2}"
RENAME="${3}" RENAME="${3}"
if [ ${#@} -gt 3 ] && ! [ "${4}" == "" ]; then if [ ${#@} -gt 3 ] && ! [ "${4}" == "" ]; then
echo "Tag provided: ${4}"
FILEVERSION="${4}" FILEVERSION="${4}"
else else
echo "No tag provided defaulting to tag ${DEFAULTTAGNAME:-main}"
FILEVERSION="${DEFAULTTAGNAME:-main}" FILEVERSION="${DEFAULTTAGNAME:-main}"
fi fi
OUTFILENAME="" OUTFILENAME=""
if [ "${RENAME}" == "false" ]; then if [ "${RENAME}" == "false" ]; then
echo "Rename deactivated outputting as ${FILEBASENAME}"
OUTFILENAME="${FILEBASENAME}" OUTFILENAME="${FILEBASENAME}"
else elif [ "${RENAME}" == "true" ]; then
# not using elif as busybox can't handle it...
if [ "${RENAME}" == "true" ]; then
OUTFILENAME="gitea" OUTFILENAME="gitea"
else echo "Rename set to true, renaming to ${OUTFILENAME}"
else
echo "Rename target name provided, renaming to ${RENAME}"
OUTFILENAME="${RENAME}" OUTFILENAME="${RENAME}"
fi
fi fi
FILE_WIHTOUT_PLATFORM="${FILEBASENAME}-${FILEVERSION}" FILE_WIHTOUT_PLATFORM="${FILEBASENAME}-${FILEVERSION}"
DOCKERDIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" DOCKERDIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 || exit 3; pwd -P )"
WS_BASE="${DOCKERDIR%/docker}" WS_BASE="${DOCKERDIR%/docker}"
if [ ! -f "${DOCKERDIR}/archmap.txt" ]; then if [ ! -f "${DOCKERDIR}/archmap.txt" ]; then
echo "no archmap found" 1>&2 errcho "no archmap found"
exit 1 exit 4
fi fi
function map(){ if [ ! -d "${DOCKERDIR}/bin" ]; then
echo "Folder ${DOCKERDIR}/bin missing, creating it"
mkdir -p "${DOCKERDIR}/bin"
fi
map () {
local file="${1}" local file="${1}"
local bin_platform="${file##./$FILE_WIHTOUT_PLATFORM-}" local bin_platform="${file##"./${FILE_WIHTOUT_PLATFORM}-"}"
local platform
echo "handling ${file} with detected bin_platform $bin_platform"
if ! grep -q "$bin_platform" "${DOCKERDIR}/archmap.txt"; then if ! grep -q "$bin_platform" "${DOCKERDIR}/archmap.txt"; then
echo "no matching platform for $file found" 2>&1 errcho "no matching platform for $file found"
return 0 return 0
fi fi
local platform="$(grep $bin_platform "${DOCKERDIR}/archmap.txt" | cut -d':' -f2)" platform="$(grep "$bin_platform" "${DOCKERDIR}/archmap.txt" | cut -d':' -f2)"
echo "Docker platform parsed: $platform"
if [ ! -d "${DOCKERDIR}/bin/$platform" ]; then
echo "First item for this platform, creating directory \"${DOCKERDIR}/bin/$platform\""
mkdir -p "${DOCKERDIR}/bin/$platform" mkdir -p "${DOCKERDIR}/bin/$platform"
echo "Mapped ${file} to $platform, copying to ${DOCKERDIR}/bin/$platform/${OUTFILENAME}" fi
echo "Mapped ${file} to $platform, copying to \"${DOCKERDIR}/bin/$platform/${OUTFILENAME}\""
cp "${file}" "${DOCKERDIR}/bin/$platform/${OUTFILENAME}" cp "${file}" "${DOCKERDIR}/bin/$platform/${OUTFILENAME}"
} }
cd "$WS_BASE/${BINARYLOOKUPPATH}" cd "$WS_BASE/${BINARYLOOKUPPATH}" || exit 5
while IFS= read -r -d $'\0' infile; do while IFS= read -r -d $'\0' infile; do
map "$infile" map "$infile"