image: docker:git services: - docker:dind stages: - build - test - release variables: TEST_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME RELEASE_IMAGE: $CI_REGISTRY_IMAGE:latest before_script: - echo $CI_JOB_TOKEN | docker login -u gitlab-ci-token --password-stdin registry.gitlab.com build: stage: build script: - docker build -t $TEST_IMAGE . - docker push $TEST_IMAGE test: stage: test script: - docker run $TEST_IMAGE --version - test -d fdroid || mkdir fdroid - cd fdroid - docker run -v $(pwd):/repo $TEST_IMAGE init --verbose - apk add --no-cache wget - wget -O repo/test.apk https://gitlab.com/fdroid/fdroidserver/raw/1.0.3/tests/repo/info.zwanenburg.caffeinetile_4.apk - docker run -v $(pwd):/repo $TEST_IMAGE update --verbose --create-metadata - test -e repo/index-v1.jar - test -e repo/index.jar - test -e repo/index.xml - grep -F '<application id=' repo/index.xml > /dev/null release: stage: release script: - docker pull $TEST_IMAGE - docker tag $TEST_IMAGE $RELEASE_IMAGE - docker push $RELEASE_IMAGE only: - master except: - schedules