Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Bandit = pipeline.Job{ Name: "bandit", Script: List("apt-get install python3-pip", "$pip install --break-system-packages bandit", "bandit -r -ii --ini .bandit"), BeforeScript: List("echo Etc/UTC > /etc/timezone", "echo 'APT::Install-Recommends \"0\";' 'APT::Install-Suggests \"0\";' 'APT::Get::Assume-Yes \"true\";' 'Acquire::Retries \"20\";' 'Dpkg::Use-Pty \"0\";' 'quiet \"1\";' >> /etc/apt/apt.conf.d/99gitlab", "grep Debian /etc/issue.net && { find /etc/apt/sources.list* -type f | xargs sed -i s,http:,https:, ; }", "echo 'Acquire::https::Verify-Peer \"false\";' > /etc/apt/apt.conf.d/99nocacertificates", "apt-get update", "apt-get install ca-certificates", "rm /etc/apt/apt.conf.d/99nocacertificates", "apt-get dist-upgrade"), Image: pipeline.Image{Name: "debian:bookworm-slim"}, Variables: Json{ "DEBIAN_FRONTEND": "noninteractive", "LANG": "C.UTF-8", }, Rules: List( pipeline.Rule{ Changes: List(".gitlab-ci.yml", "fdroid", "makebuildserver", "setup.py", "fdroidserver/*.py", "tests/*.py"), }, ), }
View Source
var Black = pipeline.Job{ Name: "black", Stage: "lint", Script: List("apt-get install black", "black --check --diff --color $CI_PROJECT_DIR"), BeforeScript: List("echo Etc/UTC > /etc/timezone", "echo 'APT::Install-Recommends \"0\";' 'APT::Install-Suggests \"0\";' 'APT::Get::Assume-Yes \"true\";' 'Acquire::Retries \"20\";' 'Dpkg::Use-Pty \"0\";' 'quiet \"1\";' >> /etc/apt/apt.conf.d/99gitlab", "grep Debian /etc/issue.net && { find /etc/apt/sources.list* -type f | xargs sed -i s,http:,https:, ; }", "echo 'Acquire::https::Verify-Peer \"false\";' > /etc/apt/apt.conf.d/99nocacertificates", "apt-get update", "apt-get install ca-certificates", "rm /etc/apt/apt.conf.d/99nocacertificates", "apt-get dist-upgrade"), Image: pipeline.Image{Name: "debian:trixie-slim"}, Variables: Json{ "DEBIAN_FRONTEND": "noninteractive", "LANG": "C.UTF-8", }, }
View Source
var BuildDocumentation = pipeline.Job{ Name: "Build documentation", Script: List("apt-get install make python3-sphinx python3-numpydoc python3-pydata-sphinx-theme pydocstyle fdroidserver", "apt purge fdroidserver", "pydocstyle --verbose --match='(?!apksigcopier|looseversion|setup|test_).*\\.py' fdroidserver", "cd docs", "sphinx-apidoc -o ./source ../fdroidserver -M -e", "PYTHONPATH=.. sphinx-autogen -o generated source/*.rst", "PYTHONPATH=.. make html"), BeforeScript: List("echo Etc/UTC > /etc/timezone", "echo 'APT::Install-Recommends \"0\";' 'APT::Install-Suggests \"0\";' 'APT::Get::Assume-Yes \"true\";' 'Acquire::Retries \"20\";' 'Dpkg::Use-Pty \"0\";' 'quiet \"1\";' >> /etc/apt/apt.conf.d/99gitlab", "grep Debian /etc/issue.net && { find /etc/apt/sources.list* -type f | xargs sed -i s,http:,https:, ; }", "echo 'Acquire::https::Verify-Peer \"false\";' > /etc/apt/apt.conf.d/99nocacertificates", "apt-get update", "apt-get install ca-certificates", "rm /etc/apt/apt.conf.d/99nocacertificates", "apt-get dist-upgrade"), Image: pipeline.Image{Name: "debian:bookworm-slim"}, Variables: Json{ "DEBIAN_FRONTEND": "noninteractive", "LANG": "C.UTF-8", }, Rules: List( pipeline.Rule{ Changes: List(".gitlab-ci.yml", "fdroid", "makebuildserver", "setup.py", "fdroidserver/*.py", "tests/*.py"), }, ), Artifacts: pipeline.Artifacts{ Paths: List("docs/build/html/"), }, }
View Source
var BuildserverRunTests = pipeline.Job{ Name: "buildserver run-tests", Script: List("apt-get update", "apt-get install gnupg-agent python3-babel python3-biplist python3-clint python3-pycountry", "./tests/run-tests", "cd $CI_PROJECT_DIR/locale", "for locale in *; do test -d $locale || continue; for cmd in `sed -n 's/.*(\"\\(.*\\)\", *_.*/\\1/p' $CI_PROJECT_DIR/fdroid`; do LANGUAGE=$locale $CI_PROJECT_DIR/fdroid $cmd --help > /dev/null; done done"), Image: pipeline.Image{Name: "registry.gitlab.com/fdroid/fdroidserver:buildserver"}, }
View Source
var DebianTesting = pipeline.Job{ Name: "debian_testing", Script: List("apt-get install aapt androguard apksigner dexdump fdroidserver git gnupg ipfs-cid python3-biplist python3-defusedxml python3-libcloud python3-pycountry python3-setuptools sdkmanager", "python3 -c 'import fdroidserver'", "python3 -c 'import androguard'", "python3 -c 'import sdkmanager'", "cd tests", "./run-tests"), BeforeScript: List("echo Etc/UTC > /etc/timezone", "echo 'APT::Install-Recommends \"0\";' 'APT::Install-Suggests \"0\";' 'APT::Get::Assume-Yes \"true\";' 'Acquire::Retries \"20\";' 'Dpkg::Use-Pty \"0\";' 'quiet \"1\";' >> /etc/apt/apt.conf.d/99gitlab", "grep Debian /etc/issue.net && { find /etc/apt/sources.list* -type f | xargs sed -i s,http:,https:, ; }", "echo 'Acquire::https::Verify-Peer \"false\";' > /etc/apt/apt.conf.d/99nocacertificates", "apt-get update", "apt-get install ca-certificates", "rm /etc/apt/apt.conf.d/99nocacertificates", "apt-get dist-upgrade"), Image: pipeline.Image{Name: "debian:testing"}, Variables: Json{ "DEBIAN_FRONTEND": "noninteractive", "LANG": "C.UTF-8", }, Rules: List( pipeline.Rule{ If: "$CI_COMMIT_BRANCH == \"master\" && $CI_PROJECT_PATH == \"fdroid/fdroidserver\"", }, ), }
View Source
var Docker = pipeline.Job{ Name: "docker", Script: List("export TEST_IMAGE=$CI_REGISTRY_IMAGE:$(printf $CI_COMMIT_REF_NAME | sed 's,[^a-zA-Z0-9_.-],_,g')", "cd buildserver", "docker build -t $TEST_IMAGE --build-arg GIT_REV_PARSE_HEAD=$(git rev-parse HEAD) .", "docker tag $TEST_IMAGE $RELEASE_IMAGE", "docker tag $TEST_IMAGE ${RELEASE_IMAGE}-bookworm", "echo $CI_JOB_TOKEN | docker login -u gitlab-ci-token --password-stdin registry.gitlab.com", "if test -z \"$FDROID_PUSH_DOCKER_IMAGE\"; then echo \"Skipping docker push to save quota on your gitlab namespace.\"; echo \"If you want to enable the push, set FDROID_PUSH_DOCKER_IMAGE in\"; echo \"https://gitlab.com/$CI_PROJECT_NAMESPACE/fdroidserver/-/settings/ci_cd#js-cicd-variables-settings\"; exit 0; fi", "docker push $RELEASE_IMAGE", "docker push $RELEASE_IMAGE-bookworm"), Image: pipeline.Image{Name: "docker:dind"}, Services: List( pipeline.Service{Name: "docker:dind"}, ), Variables: Json{ "RELEASE_IMAGE": "$CI_REGISTRY_IMAGE:buildserver", }, Rules: List( pipeline.Rule{ If: "$CI_COMMIT_BRANCH == \"master\" && $CI_PROJECT_PATH == \"fdroid/fdroidserver\"", Changes: List(".gitlab-ci.yml", "makebuildserver", "buildserver/*"), }, ), }
View Source
var FdroidBuild = pipeline.Job{ Name: "fdroid build", Script: List("apt-get update", "apt-get dist-upgrade", "apt-get clean", "test -n \"$fdroidserver\" || source /etc/profile.d/bsenv.sh", "ln -fsv \"$CI_PROJECT_DIR\" \"$fdroidserver\"", "apt-get install sdkmanager", "rm -rf \"$ANDROID_HOME/tools\"", "sdkmanager \"tools\" \"platform-tools\" \"build-tools;31.0.0\"", "git ls-remote https://gitlab.com/fdroid/fdroiddata.git master", "git clone --depth 1 https://gitlab.com/fdroid/fdroiddata.git", "cd fdroiddata", "for d in build logs repo tmp unsigned $home_vagrant/.android; do test -d $d || mkdir $d; chown -R vagrant $d; done", "export GRADLE_USER_HOME=$home_vagrant/.gradle", "export fdroid=\"sudo --preserve-env --user vagrant env PATH=$fdroidserver:$PATH env PYTHONPATH=$fdroidserver:$fdroidserver/examples env PYTHONUNBUFFERED=true env TERM=$TERM env HOME=$home_vagrant fdroid\"", "git -C $home_vagrant/gradlew-fdroid pull", "chown -R vagrant $home_vagrant", "chown -R vagrant $fdroidserver/.git", "chown vagrant $fdroidserver/", "chown -R vagrant .git", "chown vagrant .", "$fdroid build --verbose --latest org.fdroid.fdroid.privileged", "$fdroid build --verbose --on-server --no-tarball --latest org.fdroid.fdroid", "if dpkg --list sudo; then echo \"sudo should not be still there\"; exit 1; fi", "if [ ! -f repo/status/running.json ]; then echo \"ERROR: running.json does not exist!\"; exit 1; fi", "if [ ! -f repo/status/build.json ]; then echo \"ERROR: build.json does not exist!\"; exit 1; fi"), Image: pipeline.Image{Name: "registry.gitlab.com/fdroid/fdroidserver:buildserver"}, Rules: List( pipeline.Rule{ Changes: List(".gitlab-ci.yml", "fdroidserver/build.py", "fdroidserver/common.py", "fdroidserver/exception.py", "fdroidserver/metadata.py", "fdroidserver/net.py", "fdroidserver/scanner.py", "fdroidserver/vmtools.py", "makebuildserver", "buildserver/*"), }, ), Cache: pipeline.Cache{ Key: "$CI_JOB_NAME", Paths: List(".gradle"), }, }
View Source
var FedoraLatest = pipeline.Job{ Name: "fedora_latest", Script: List("echo \"timeout=600\" >> /etc/dnf/dnf.conf", "echo \"retries=50\" >> /etc/dnf/dnf.conf", "echo \"keepcache=True\" >> /etc/dnf/dnf.conf", "dnf -y update || dnf -y update", "dnf -y install @development-tools diffutils findutils git gnupg java-17-openjdk-devel openssl python3 python3-babel python3-matplotlib python3-pip python3-pycountry rsync which", "$pip install sdkmanager", "./setup.py sdist", "useradd -m -c \"test account\" --password \"fakepassword\" testuser", "su testuser --login --command \"cd `pwd`; $pip install --user dist/fdroidserver-*.tar.gz\"", "test -e ~testuser/.local/share/locale/de/LC_MESSAGES/fdroidserver.mo", "export BUILD_TOOLS_VERSION=`sed -n \"s,^MINIMUM_APKSIGNER_BUILD_TOOLS_VERSION\\s*=\\s*['\\\"]\\(.*\\)[['\\\"],\\1,p\" fdroidserver/common.py`", "export ANDROID_HOME=`pwd`/android-sdk", "mkdir -p $ANDROID_HOME/licenses/", "printf \"\\n8933bad161af4178b1185d1a37fbf41ea5269c55\\nd56f5187479451eabf01fb78af6dfcb131a6481e\\n24333f8a63b6825ea9c5514f83c2829b004d1fee\" > $ANDROID_HOME/licenses/android-sdk-license", "printf \"\\n84831b9409646a918e30573bab4c9c91346d8abd\" > $ANDROID_HOME/licenses/android-sdk-preview-license", "printf \"\\n79120722343a6f314e0719f863036c702b0e6b2a\\n84831b9409646a918e30573bab4c9c91346d8abd\" > $ANDROID_HOME/licenses/android-sdk-preview-license-old", "mkdir ~/.android", "touch ~/.android/repositories.cfg", "sdkmanager \"platform-tools\" \"build-tools;$BUILD_TOOLS_VERSION\"", "chown -R testuser .", "cd tests", "su testuser --login --command \"cd `pwd`; export CI=$CI ANDROID_HOME=$ANDROID_HOME; fdroid=~testuser/.local/bin/fdroid ./run-tests\""), Image: pipeline.Image{Name: "fedora:39"}, }
View Source
var HooksPreCommit = pipeline.Job{ Name: "hooks/pre-commit", Stage: "lint", Script: List("apt-get update", "apt-get -y install --no-install-recommends bash ca-certificates dash gcc git make pycodestyle pyflakes3 python3-dev python3-git python3-nose python3-pip python3-yaml", "./hooks/pre-commit"), Image: pipeline.Image{Name: "debian:bookworm-slim"}, Variables: Json{ "LANG": "C.UTF-8", }, }
View Source
var Locales = pipeline.Job{ Name: "locales", Stage: "lint", Script: List("apt-get update", "apt-get -y install --no-install-recommends gettext make python3-babel", "export EXITVALUE=0", "function set_error() { export EXITVALUE=1; printf \"\\x1b[31mERROR `history|tail -2|head -1|cut -b 6-500`\\x1b[0m\\n\"; }", "make -C locale compile || set_error", "rm -f locale/*/*/*.mo", "pybabel compile --domain=fdroidserver --directory locale 2>&1 | { grep -F \"error:\" && exit 1; } || true", "exit $EXITVALUE"), Image: pipeline.Image{Name: "debian:bookworm-slim"}, Variables: Json{ "LANG": "C.UTF-8", }, }
View Source
var MacOS = pipeline.Job{ Name: "macOS", Script: List("export HOMEBREW_CURL_RETRIES=10", "brew update > /dev/null", "brew upgrade", "brew install fdroidserver", "brew install --cask android-commandlinetools temurin", "brew install bash coreutils gnu-sed", "export PATH=\"$(brew --prefix fdroidserver)/libexec/bin:$(brew --prefix coreutils)/libexec/gnubin:$PATH\"", "brew autoremove", "brew info fdroidserver", "export BUILD_TOOLS_VERSION=`gsed -n \"s,^MINIMUM_APKSIGNER_BUILD_TOOLS_VERSION\\s*=\\s*['\\\"]\\(.*\\)[['\\\"],\\1,p\" fdroidserver/common.py`", "export ANDROID_HOME=\"$(brew --prefix)/share/android-commandlinetools\"", "mkdir -p \"$ANDROID_HOME/licenses\"", "echo -e \"\\n8933bad161af4178b1185d1a37fbf41ea5269c55\" > \"$ANDROID_HOME/licenses/android-sdk-license\"", "echo -e \"\\nd56f5187479451eabf01fb78af6dfcb131a6481e\" >> \"$ANDROID_HOME/licenses/android-sdk-license\"", "echo -e \"\\n24333f8a63b6825ea9c5514f83c2829b004d1fee\" >> \"$ANDROID_HOME/licenses/android-sdk-license\"", "$(brew --prefix)/bin/sdkmanager \"build-tools;$BUILD_TOOLS_VERSION\"", "echo \"macOS sticks with bash 3.x because of licenses, so avoid new bash syntax\"", "/bin/bash --version", "/bin/bash -n tests/run-tests", "fdroid=\"$(brew --prefix fdroidserver)/libexec/bin/python3 $PWD/fdroid\" ./tests/run-tests"), Rules: List( pipeline.Rule{ If: "$CI_COMMIT_BRANCH == \"master\" && $CI_PROJECT_PATH == \"fdroid/fdroidserver\"", }, ), Tags: List("saas-macos-medium-m1"), }
View Source
var MainPipeline = pipeline.Pipeline{
Stages: List("lint", "test", "deploy"),
Variables: Json{
"pip": "pip3 --timeout 100 --retries 10",
"GIT_DEPTH": 1,
},
}
View Source
var MetadataV0 = pipeline.Job{ Name: "metadata_v0", Script: List("git fetch https://gitlab.com/fdroid/fdroidserver.git $RELEASE_COMMIT_ID", "cd tests", "export GITCOMMIT=$(git rev-parse HEAD)", "git checkout $RELEASE_COMMIT_ID", "cd ..", "git clone --depth 1 https://gitlab.com/fdroid/fdroiddata.git", "rm -f fdroiddata/config.yml", "cd fdroiddata", "../tests/dump_internal_metadata_format.py", "cd ..", "git reset --hard", "git checkout $GITCOMMIT", "cd fdroiddata", "../tests/dump_internal_metadata_format.py", "sed -i -e '/ArchivePolicy:/d' -e '/FlattrID:/d' -e '/RequiresRoot:/d' metadata/dump_*/*.yaml", "diff -uw metadata/dump_*"), Image: pipeline.Image{Name: "registry.gitlab.com/fdroid/fdroidserver:buildserver"}, Variables: Json{ "GIT_DEPTH": 1000, "RELEASE_COMMIT_ID": "d172d991803b27ad5213d11b5a737e5cb9e5fc3a", }, }
View Source
var PUBLISH = pipeline.Job{ Name: "PUBLISH", Script: List("apt-get update", "apt-get -qy upgrade", "apt-get -qy install --no-install-recommends -t bookworm-backports androguard apksigner curl default-jdk-headless git gpg gpg-agent python3-asn1crypto python3-defusedxml python3-git python3-ruamel.yaml python3-yaml rsync", "python3 -m unittest tests/test_gpgsign.py tests/test_metadata.py tests/test_publish.py tests/test_signatures.py tests/test_signindex.py", "cd tests", "mkdir archive", "mkdir unsigned", "cp urzip-release-unsigned.apk unsigned/info.guardianproject.urzip_100.apk", "grep '^key.*pass' config.yml | sed 's,\\x3a ,=,' > $CI_PROJECT_DIR/variables", "sed -Ei 's,^(key.*pass|keystore)\\x3a.*,\\1\\x3a {env\\x3a \\1},' config.yml", "printf '\\ngpghome\\x3a {env\\x3a gpghome}\\n' >> config.yml", "tee --append $CI_PROJECT_DIR/variables <<EOF\n gpghome=$CI_PROJECT_DIR/tests/gnupghome\n keystore=$CI_PROJECT_DIR/tests/keystore.jks\n serverwebroot=/tmp\n export gpghome keypass keystorepass keystore serverwebroot\nEOF\n", "source $CI_PROJECT_DIR/variables", "chmod 0600 config.yml config/*.yml config/*/*.yml", "chmod 0700 $gpghome", "export PATH=$CI_PROJECT_DIR:$PATH", "fdroid publish --verbose", "fdroid gpgsign --verbose", "rsync --progress repo/* $serverwebroot/", "fdroid gpgsign --verbose", "fdroid signindex --verbose", "rsync --stats repo/* $serverwebroot/"), Image: pipeline.Image{Name: "debian:bookworm-backports"}, Rules: List( pipeline.Rule{ Changes: List(".gitlab-ci.yml", "fdroid", "makebuildserver", "setup.py", "fdroidserver/*.py", "tests/*.py"), }, ), }
View Source
var Pages = pipeline.Job{ Name: "pages", Stage: "deploy", Script: List("cp docs/build/html public -r"), Image: pipeline.Image{Name: "alpine:latest"}, Rules: List( pipeline.Rule{ If: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH", }, ), Needs: []any{BuildDocumentation}, Artifacts: pipeline.Artifacts{ Paths: List("public"), }, }
View Source
var PipAudit = pipeline.Job{ Name: "pip-audit", Stage: "lint", Script: List("apt update -yyq", "apt upgrade -yyq", "apt install -yyq --no-install-recommends python3 python3-venv", "python3 -m venv env", ". env/bin/activate", "python3 -m ensurepip", "python3 -m pip install --upgrade pip", "python3 -m pip install pip-audit", "python3 -m pip_audit -f json | python3 -m json.tool --indent=2 || true", "python3 -m pip_audit"), Image: pipeline.Image{Name: "debian:13-slim"}, }
View Source
var PluginFetchsrclibs = pipeline.Job{ Name: "plugin_fetchsrclibs", Script: List("apt-get install curl git python3-cffi python3-matplotlib python3-nacl python3-paramiko python3-pil python3-pip python3-pycparser python3-venv", "python3 -m venv --system-site-packages env", ". env/bin/activate", "export PATH=\"$CI_PROJECT_DIR:$PATH\"", "export PYTHONPATH=\"$CI_PROJECT_DIR/examples\"", "export SETUPTOOLS_USE_DISTUTILS=stdlib", "$pip install -e .", "fdroid | grep fetchsrclibs", "mkdir fdroiddata", "commitid=b9e9a077d720c86ff6fff4dbb341254cc4370b1a", "curl https://gitlab.com/fdroid/fdroiddata/-/archive/${commitid}/fdroiddata-${commitid}.tar.gz | tar -xz --directory=fdroiddata --strip-components=1", "cd fdroiddata", "fdroid fetchsrclibs freemap.opentrail:4 --verbose", "test -d build/freemap.opentrail/.git", "test -d build/srclib/andromaps/.git", "test -d build/srclib/freemaplib/.git", "test -d build/srclib/freemaplibProj/.git", "test -d build/srclib/JCoord/.git", "test -d build/srclib/javaproj/.git"), BeforeScript: List("echo Etc/UTC > /etc/timezone", "echo 'APT::Install-Recommends \"0\";' 'APT::Install-Suggests \"0\";' 'APT::Get::Assume-Yes \"true\";' 'Acquire::Retries \"20\";' 'Dpkg::Use-Pty \"0\";' 'quiet \"1\";' >> /etc/apt/apt.conf.d/99gitlab", "grep Debian /etc/issue.net && { find /etc/apt/sources.list* -type f | xargs sed -i s,http:,https:, ; }", "echo 'Acquire::https::Verify-Peer \"false\";' > /etc/apt/apt.conf.d/99nocacertificates", "apt-get update", "apt-get install ca-certificates", "rm /etc/apt/apt.conf.d/99nocacertificates", "apt-get dist-upgrade"), Image: pipeline.Image{Name: "debian:bookworm-slim"}, Variables: Json{ "LANG": "C.UTF-8", "DEBIAN_FRONTEND": "noninteractive", }, Rules: List( pipeline.Rule{ Changes: List(".gitlab-ci.yml", "examples/fdroid_fetchsrclibs.py", "fdroidserver/__main__.py"), }, ), }
View Source
var PodmanSystemService = pipeline.Job{ Name: "podman system service", Script: List("apt-get install python3-asn1crypto python3-defusedxml python3-git python3-pillow python3-podman python3-ruamel.yaml python3-yaml", "python3 -m unittest tests/test_up.py --verbose"), BeforeScript: List("echo Etc/UTC > /etc/timezone", "echo 'APT::Install-Recommends \"0\";' 'APT::Install-Suggests \"0\";' 'APT::Get::Assume-Yes \"true\";' 'Acquire::Retries \"20\";' 'Dpkg::Use-Pty \"0\";' 'quiet \"1\";' >> /etc/apt/apt.conf.d/99gitlab", "grep Debian /etc/issue.net && { find /etc/apt/sources.list* -type f | xargs sed -i s,http:,https:, ; }", "echo 'Acquire::https::Verify-Peer \"false\";' > /etc/apt/apt.conf.d/99nocacertificates", "apt-get update", "apt-get install ca-certificates", "rm /etc/apt/apt.conf.d/99nocacertificates", "apt-get dist-upgrade"), Image: pipeline.Image{Name: "debian:trixie-slim"}, Variables: Json{ "DEBIAN_FRONTEND": "noninteractive", "LANG": "C.UTF-8", }, Rules: List( pipeline.Rule{ Changes: List(".gitlab-ci.yml", "fdroidserver/up.py", "tests/test_up.py"), }, ), }
View Source
var Pylint = pipeline.Job{ Name: "pylint", Stage: "lint", Script: List("apt-get install pylint python3-pip", "$pip install --break-system-packages pylint-gitlab", "pylint --output-format=colorized,pylint_gitlab.GitlabCodeClimateReporter:pylint-report.json fdroid makebuildserver setup.py fdroidserver/*.py tests/*.py"), BeforeScript: List("echo Etc/UTC > /etc/timezone", "echo 'APT::Install-Recommends \"0\";' 'APT::Install-Suggests \"0\";' 'APT::Get::Assume-Yes \"true\";' 'Acquire::Retries \"20\";' 'Dpkg::Use-Pty \"0\";' 'quiet \"1\";' >> /etc/apt/apt.conf.d/99gitlab", "grep Debian /etc/issue.net && { find /etc/apt/sources.list* -type f | xargs sed -i s,http:,https:, ; }", "echo 'Acquire::https::Verify-Peer \"false\";' > /etc/apt/apt.conf.d/99nocacertificates", "apt-get update", "apt-get install ca-certificates", "rm /etc/apt/apt.conf.d/99nocacertificates", "apt-get dist-upgrade"), Image: pipeline.Image{Name: "debian:bookworm-slim"}, Variables: Json{ "DEBIAN_FRONTEND": "noninteractive", "LANG": "C.UTF-8", }, Rules: List( pipeline.Rule{ Changes: List(".gitlab-ci.yml", "fdroid", "makebuildserver", "setup.py", "fdroidserver/*.py", "tests/*.py"), }, ), }
View Source
var Safety = pipeline.Job{ Name: "safety", Script: List("apt-get install fdroidserver python3-biplist python3-pip python3-pycountry", "$pip install --break-system-packages .", "$pip install --break-system-packages safety", "python3 -m safety --key \"$SAFETY_API_KEY\" --stage cicd scan"), BeforeScript: List("echo Etc/UTC > /etc/timezone", "echo 'APT::Install-Recommends \"0\";' 'APT::Install-Suggests \"0\";' 'APT::Get::Assume-Yes \"true\";' 'Acquire::Retries \"20\";' 'Dpkg::Use-Pty \"0\";' 'quiet \"1\";' >> /etc/apt/apt.conf.d/99gitlab", "grep Debian /etc/issue.net && { find /etc/apt/sources.list* -type f | xargs sed -i s,http:,https:, ; }", "echo 'Acquire::https::Verify-Peer \"false\";' > /etc/apt/apt.conf.d/99nocacertificates", "apt-get update", "apt-get install ca-certificates", "rm /etc/apt/apt.conf.d/99nocacertificates", "apt-get dist-upgrade"), Image: pipeline.Image{Name: "debian:bookworm-slim"}, Variables: Json{ "LANG": "C.UTF-8", }, Rules: List( pipeline.Rule{ If: "$SAFETY_API_KEY", Changes: List(".gitlab-ci.yml", ".safety-policy.yml", "pyproject.toml", "setup.py"), }, ), }
View Source
var Servergitmirrors = pipeline.Job{ Name: "servergitmirrors", Script: List("apt-get install default-jdk-headless git openssh-client openssl python3-cffi python3-cryptography python3-matplotlib python3-nacl python3-pil python3-pip python3-pycparser python3-setuptools python3-venv rsync wget", "apt-get install apksigner", "python3 -m venv --system-site-packages env", ". env/bin/activate", "export PYTHONPATH=`pwd`", "export SETUPTOOLS_USE_DISTUTILS=stdlib", "$pip install -e .", "mkdir /root/.ssh/", "./tests/key-tricks.py", "ssh-keyscan gitlab.com >> /root/.ssh/known_hosts", "test -d /tmp/fdroid/repo || mkdir -p /tmp/fdroid/repo", "cp tests/config.yml tests/keystore.jks /tmp/fdroid/", "cp tests/repo/com.politedroid_6.apk /tmp/fdroid/repo/", "cd /tmp/fdroid", "touch fdroid-icon.png", "printf \"\\nservergitmirrors\\x3a 'git@gitlab.com:fdroid/ci-test-servergitmirrors-repo.git'\\n\" >> config.yml", "$PYTHONPATH/fdroid update --verbose --create-metadata", "$PYTHONPATH/fdroid deploy --verbose", "export DLURL=`grep -Eo 'https://gitlab.com/fdroid/ci-test-servergitmirrors-repo[^\"]+' repo/index-v1.json`", "echo $DLURL", "wget $DLURL/index-v1.jar", "diff repo/index-v1.jar index-v1.jar"), BeforeScript: List("echo Etc/UTC > /etc/timezone", "echo 'APT::Install-Recommends \"0\";' 'APT::Install-Suggests \"0\";' 'APT::Get::Assume-Yes \"true\";' 'Acquire::Retries \"20\";' 'Dpkg::Use-Pty \"0\";' 'quiet \"1\";' >> /etc/apt/apt.conf.d/99gitlab", "grep Debian /etc/issue.net && { find /etc/apt/sources.list* -type f | xargs sed -i s,http:,https:, ; }", "echo 'Acquire::https::Verify-Peer \"false\";' > /etc/apt/apt.conf.d/99nocacertificates", "apt-get update", "apt-get install ca-certificates", "rm /etc/apt/apt.conf.d/99nocacertificates", "apt-get dist-upgrade"), Image: pipeline.Image{Name: "debian:bookworm-slim"}, Variables: Json{ "DEBIAN_FRONTEND": "noninteractive", "LANG": "C.UTF-8", }, Rules: List( pipeline.Rule{ If: "$CI_COMMIT_BRANCH == \"master\" && $CI_PROJECT_PATH == \"fdroid/fdroidserver\"", }, ), }
View Source
var Shellcheck = pipeline.Job{ Name: "shellcheck", Stage: "lint", Script: List("apt-get install shellcheck", "shellcheck --exclude SC2046,SC2090 --severity=warning --color hooks/install-hooks.sh hooks/pre-commit tests/run-tests"), BeforeScript: List("echo Etc/UTC > /etc/timezone", "echo 'APT::Install-Recommends \"0\";' 'APT::Install-Suggests \"0\";' 'APT::Get::Assume-Yes \"true\";' 'Acquire::Retries \"20\";' 'Dpkg::Use-Pty \"0\";' 'quiet \"1\";' >> /etc/apt/apt.conf.d/99gitlab", "grep Debian /etc/issue.net && { find /etc/apt/sources.list* -type f | xargs sed -i s,http:,https:, ; }", "echo 'Acquire::https::Verify-Peer \"false\";' > /etc/apt/apt.conf.d/99nocacertificates", "apt-get update", "apt-get install ca-certificates", "rm /etc/apt/apt.conf.d/99nocacertificates", "apt-get dist-upgrade"), Image: pipeline.Image{Name: "debian:bookworm-slim"}, Variables: Json{ "DEBIAN_FRONTEND": "noninteractive", "LANG": "C.UTF-8", }, Rules: List( pipeline.Rule{ Changes: List(".gitlab-ci.yml", "hooks/install-hooks.sh", "hooks/pre-commit", "tests/run-tests"), }, ), }
View Source
var TestDeployToS3WithRclone = pipeline.Job{ Name: "test_deploy_to_s3_with_rclone", Script: List("python3 -m unittest -k test_update_remote_storage_with_rclone --verbose"), BeforeScript: List("apt-get update", "apt-get install -y androguard apksigner curl docker.io git python3-venv rclone", "docker info", "python3 -m venv --system-site-packages test-venv", ". test-venv/bin/activate", "pip install testcontainers[minio]", "pip install ."), Image: pipeline.Image{Name: "debian:trixie-slim"}, Services: List( pipeline.Service{Name: "docker:dind"}, ), Variables: Json{ "DOCKER_HOST": "tcp://docker:2375", "DOCKER_DRIVER": "overlay2", "DOCKER_TLS_CERTDIR": "", }, Rules: List( pipeline.Rule{ Changes: List(".gitlab-ci.yml", "fdroidserver/deploy.py", "tests/test_deploy.py", "tests/test_integration.py"), }, ), Tags: List("saas-linux-small-amd64"), }
View Source
var UbuntuJammyPip = pipeline.Job{ Name: "ubuntu_jammy_pip", Script: List("apt-get install git default-jdk-headless python3-pip python3-venv rsync", "python3 -m venv sdist-env", ". sdist-env/bin/activate", "./setup.py sdist", "deactivate", "tar tzf dist/fdroidserver-*.tar.gz", "export ANDROID_HOME=/opt/android-sdk", "$pip install sdkmanager", "sdkmanager 'build-tools;35.0.0'", "$pip install biplist pycountry", "$pip install dist/fdroidserver-*.tar.gz", "tar xzf dist/fdroidserver-*.tar.gz", "cd fdroidserver-*", "export PATH=$PATH:$ANDROID_HOME/build-tools/35.0.0", "fdroid=`which fdroid` ./tests/run-tests", "LANGUAGE='de' fdroid --help | grep 'Gültige Befehle sind'"), BeforeScript: List("echo Etc/UTC > /etc/timezone", "echo 'APT::Install-Recommends \"0\";' 'APT::Install-Suggests \"0\";' 'APT::Get::Assume-Yes \"true\";' 'Acquire::Retries \"20\";' 'Dpkg::Use-Pty \"0\";' 'quiet \"1\";' >> /etc/apt/apt.conf.d/99gitlab", "grep Debian /etc/issue.net && { find /etc/apt/sources.list* -type f | xargs sed -i s,http:,https:, ; }", "echo 'Acquire::https::Verify-Peer \"false\";' > /etc/apt/apt.conf.d/99nocacertificates", "apt-get update", "apt-get install ca-certificates", "rm /etc/apt/apt.conf.d/99nocacertificates", "apt-get dist-upgrade"), Image: pipeline.Image{Name: "ubuntu:jammy"}, Variables: Json{ "DEBIAN_FRONTEND": "noninteractive", "LANG": "C.UTF-8", }, }
View Source
var UbuntuLtsPpa = pipeline.Job{ Name: "ubuntu_lts_ppa", Script: List("export ANDROID_HOME=/usr/lib/android-sdk", "apt-get install gnupg", "while ! apt-key adv --keyserver keyserver.ubuntu.com --recv-key 9AAC253193B65D4DF1D0A13EEC4632C79C5E0151; do sleep 15; done", "export RELEASE=$(sed -n 's,^Suites\\x3a \\([a-z]*\\).*,\\1,p' /etc/apt/sources.list.d/*.sources | head -1)", "echo \"deb http://ppa.launchpad.net/fdroid/fdroidserver/ubuntu $RELEASE main\" >> /etc/apt/sources.list", "apt-get update", "apt-get dist-upgrade", "apt-get install --install-recommends dexdump fdroidserver git python3-biplist python3-pycountry python3-setuptools sdkmanager", "git config --global init.defaultBranch thisisnotmasterormain", "cd tests", "./run-tests"), BeforeScript: List("echo Etc/UTC > /etc/timezone", "echo 'APT::Install-Recommends \"0\";' 'APT::Install-Suggests \"0\";' 'APT::Get::Assume-Yes \"true\";' 'Acquire::Retries \"20\";' 'Dpkg::Use-Pty \"0\";' 'quiet \"1\";' >> /etc/apt/apt.conf.d/99gitlab", "grep Debian /etc/issue.net && { find /etc/apt/sources.list* -type f | xargs sed -i s,http:,https:, ; }", "echo 'Acquire::https::Verify-Peer \"false\";' > /etc/apt/apt.conf.d/99nocacertificates", "apt-get update", "apt-get install ca-certificates", "rm /etc/apt/apt.conf.d/99nocacertificates", "apt-get dist-upgrade"), Image: pipeline.Image{Name: "ubuntu:latest"}, Variables: Json{ "DEBIAN_FRONTEND": "noninteractive", "LANG": "C.UTF-8", }, Rules: List( pipeline.Rule{ If: "$CI_COMMIT_BRANCH == \"master\" && $CI_PROJECT_PATH == \"fdroid/fdroidserver\"", }, ), }
View Source
var Windows = pipeline.Job{ Name: "Windows", Script: List("Import-Module \"$env:ChocolateyInstall\\helpers\\chocolateyProfile.psm1\"", "choco install --no-progress -y git --force --params \"/GitAndUnixToolsOnPath\"", "choco install --no-progress -y python3 --version=3.10", "choco install --no-progress -y jdk8", "choco install --no-progress -y rsync", "refreshenv", "python -m pip install --upgrade babel pip setuptools", "python -m pip install -e .", "$files = @(Get-ChildItem tests\\test_*.py)", "foreach ($f in $files) { write-output $f; python -m unittest $f; if( $LASTEXITCODE -eq 0 ) { write-output \"SUCCESS $f\"; } else { write-output \"ERROR $f failed\"; } }", "python -m unittest -k checkupdates exception import_subcommand test_lint test_metadata test_rewritemeta test_vcs tests.test_init tests.test_main"), AfterScript: List("Copy-Item C:\\ProgramData\\chocolatey\\logs\\chocolatey.log"), Rules: List( pipeline.Rule{ If: "$CI_COMMIT_BRANCH == \"windows\"", }, ), Artifacts: pipeline.Artifacts{ Paths: List("*.log"), When: "always", }, Tags: List("windows"), }
View Source
var Yamllint = pipeline.Job{ Name: "yamllint", Stage: "lint", Script: List("apt-get install yamllint", "yamllint .gitlab-ci.yml .safety-policy.yml .yamllint */*.yaml */*.yml tests/*.yml tests/*/*.yml tests/*/*/.*.yml"), BeforeScript: List("echo Etc/UTC > /etc/timezone", "echo 'APT::Install-Recommends \"0\";' 'APT::Install-Suggests \"0\";' 'APT::Get::Assume-Yes \"true\";' 'Acquire::Retries \"20\";' 'Dpkg::Use-Pty \"0\";' 'quiet \"1\";' >> /etc/apt/apt.conf.d/99gitlab", "grep Debian /etc/issue.net && { find /etc/apt/sources.list* -type f | xargs sed -i s,http:,https:, ; }", "echo 'Acquire::https::Verify-Peer \"false\";' > /etc/apt/apt.conf.d/99nocacertificates", "apt-get update", "apt-get install ca-certificates", "rm /etc/apt/apt.conf.d/99nocacertificates", "apt-get dist-upgrade"), Image: pipeline.Image{Name: "debian:bookworm-slim"}, Variables: Json{ "LANG": "C.UTF-8", }, Rules: List( pipeline.Rule{ Changes: List(".gitlab-ci.yml", ".safety-policy.yml", ".yamllint", "*/*.yaml", "*/*.yml", "tests/*.yml", "tests/*/*.yml", "tests/*/*/.*.yml"), }, ), }
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.