Remmina/.gitlab-ci.yml
2024-08-07 12:23:13 +00:00

188 lines
5.5 KiB
YAML

# You can override the included template(s) by including variable overrides
# See https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings
# Note that environment variables can be set in several places
# See https://docs.gitlab.com/ee/ci/variables/#priority-of-environment-variables
image: registry.gitlab.com/remmina/remmina/ubuntu:22.04
stages:
- test
- build
- triage
variables:
GIT_SUBMODULE_STRATEGY: recursive
BUILD_FOLDER: build
DEB_PPA: ppa:remmina-ppa-team/remmina-next
FREERDP_DAILY_PPA: ppa:remmina-ppa-team/remmina-next-daily
DOCKER_IMAGE: ubuntu:latest
CMAKE_BUILD_OPTIONS: "-DCMAKE_BUILD_TYPE=Release -DWITH_APPINDICATOR=on -DWITH_FREERDP3=OFF"
FLATPAK_ARCH: x86_64
cache: &global_cache
key: ${CI_JOB_NAME}
policy: pull-push
before_script:
- mkdir -p .flatpak-builder/cache
ubuntu:devel:
stage: test
before_script:
- apt-get update -qq
- apt-get install -y -qq libpcre2-8-0 libpcre2-dev python3 python3-dev
script:
- mkdir $BUILD_FOLDER
- cmake -B$BUILD_FOLDER -H. $CMAKE_BUILD_OPTIONS
- make VERBOSE=1 -C $BUILD_FOLDER
only:
refs:
- master
- tags
- merge_requests
- web
except:
refs:
- schedules
flatpak:test:
image: registry.gitlab.com/remmina/remmina/ubuntu:22.04
stage: test
variables:
BUNDLE: remmina-dev.flatpak
FLATPAK_PPA: ppa:alexlarsson/flatpak
FLATHUB_REPO: https://dl.flathub.org/repo/flathub.flatpakrepo
before_script:
- apt-get update -qq
- apt-get install -y -qq flatpak-builder flatpak build-essential git-core
- flatpak --user remote-add --if-not-exists flathub $FLATHUB_REPO
- git config --global protocol.file.allow always
script:
- "/bin/sh -xe ./flatpak/flatpak-build.sh"
artifacts:
expose_as: Download the flatpak
paths:
- flatpak/remmina-dev.flatpak
expire_in: 7 days
cache:
<<: *global_cache
paths:
- flatpak/.flatpak-builder/cache/
- flatpak/.flatpak-builder/ccache/
- flatpak/.flatpak-builder/downloads/
- flatpak/.flatpak-builder/git/
only:
refs:
- merge_requests
- tags
- web
except:
refs:
- schedules
snap:build:
image: registry.gitlab.com/remmina/remmina/snap:22.04
stage: build
before_script:
- apt-get update -qq
script:
- apt-get install -y git
- mkdir -p ~/.local/share/snapcraft/provider/launchpad
- echo -en "[1]\n" > ~/.local/share/snapcraft/provider/launchpad/credentials
- echo -en "consumer_key = System-wide" >> ~/.local/share/snapcraft/provider/launchpad/credentials
- echo -en ":" >> ~/.local/share/snapcraft/provider/launchpad/credentials
- echo -en " Ubuntu (ubuntu)\n" >> ~/.local/share/snapcraft/provider/launchpad/credentials
- echo -en "consumer_secret = \n" >> ~/.local/share/snapcraft/provider/launchpad/credentials
- echo -en "access_token = " >> ~/.local/share/snapcraft/provider/launchpad/credentials
- echo -en $LAUNCHPAD_CREDENTIALS_ACCESS_TOKEN >> ~/.local/share/snapcraft/provider/launchpad/credentials
- echo -en "\naccess_secret = " >> ~/.local/share/snapcraft/provider/launchpad/credentials
- echo -en $LAUNCHPAD_CREDENTIALS_ACCESS_SECRET >> ~/.local/share/snapcraft/provider/launchpad/credentials
- echo -en "\n" >> ~/.local/share/snapcraft/provider/launchpad/credentials
- snapcraft remote-build --launchpad-accept-public-upload
- |
if ls remmina_*_amd64.snap 1> /dev/null 2>&1; then
echo "amd64 snap file found"
else
echo "amd64 snap file not found"
cat remmina_amd64.txt
exit 1
fi
- |
if ls remmina_*_arm64.snap 1> /dev/null 2>&1; then
echo "arm64 snap file found"
else
echo "arm64 snap file not found"
cat remmina_arm64.txt
exit 1
fi
- |
if ls remmina_*_armhf.snap 1> /dev/null 2>&1; then
echo "armhf snap file found"
else
echo "armhf snap file not found"
cat remmina_armhf.txt
exit 1
fi
- |
if [ "$CI_COMMIT_REF_NAME" = "master" ]; then
echo $SNAPCRAFT_LOGIN | base64 --decode --ignore-garbage > snapcraft.login
snapcraft login --with snapcraft.login
snapcraft upload remmina*_amd64.snap --release edge
snapcraft upload remmina*_arm64.snap --release edge
snapcraft upload remmina*_armhf.snap --release edge
snapcraft logout
fi
timeout: 8h 0m
allow_failure: false
artifacts:
paths:
- "./*.snap"
- "./remmina_*.txt"
expire_in: 10 days
only:
refs:
- tags
- merge_requests
- web
except:
refs:
- schedules
trigger_build:
stage: build
before_script:
- apt-get update -qq
- apt-get install -y -qq curl
script:
- curl -X POST -F token=$CITOKEN -F ref=master https://gitlab.com/api/v4/projects/10530342/trigger/pipeline
except:
- schedules
trigger_ppa:
stage: build
before_script:
- apt-get update -qq
- apt-get install -y -qq curl
script:
- curl -X POST -F token=$PPACITOKEN -F ref=master https://gitlab.com/api/v4/projects/6725270/trigger/pipeline
only:
- tags
- web
except:
- schedules
#dry-run:triage:
# image: ruby:2.7
# stage: triage
# script:
# - gem install gitlab-triage
# - gitlab-triage --help
# - gitlab-triage --dry-run --token $RM_TRIAGE_TOKEN --host-url $CI_SERVER_URL --source projects --source-id $CI_PROJECT_PATH
# when: manual
# except:
# - schedules
run:triage:
image: ruby:3.2
stage: triage
script:
- gem install gitlab-triage
- gitlab-triage --token $RM_TRIAGE_TOKEN --host-url $CI_SERVER_URL --source projects --source-id $CI_PROJECT_PATH
only:
- schedules