--- kind: pipeline type: docker name: linting steps: - name: gitleaks image: plugins/gitleaks settings: path: . when: event: exclude: - tag - name: hadolint image: hadolint/hadolint:latest-debian commands: - hadolint Dockerfile --- kind: pipeline type: docker name: selfhosted depends_on: # bezieht sich auf linting pipeline - linting steps: - name: docker_build_and_push_selfhosted image: plugins/docker settings: dockerfile: Dockerfile repo: registry.mgrote.net/python-api-server registry: registry.mgrote.net tags: - ${DRONE_COMMIT_SHA:0:8} - ${DRONE_COMMIT_BRANCH} - latest when: event: exclude: - pull_request - tag - name: docker_build_and_push_selfhosted_tag image: plugins/docker settings: dockerfile: Dockerfile repo: registry.mgrote.net/python-api-server registry: registry.mgrote.net tags: - ${DRONE_TAG} when: event: - tag --- kind: pipeline type: docker name: dockerhub depends_on: # bezieht sich auf linting pipeline - linting steps: - name: docker_build_and_push_dockerhub image: plugins/docker settings: username: from_secret: DOCKERHUB_USER password: from_secret: DOCKERHUB_PASS dockerfile: Dockerfile repo: quotengrote/python-api-server tags: - ${DRONE_COMMIT_SHA:0:8} - ${DRONE_COMMIT_BRANCH} - latest when: event: exclude: - pull_request - tag - name: docker_build_and_push_dockerhub_tag image: plugins/docker settings: username: from_secret: DOCKERHUB_USER password: from_secret: DOCKERHUB_PASS dockerfile: Dockerfile repo: quotengrote/python-api-server tags: - ${DRONE_TAG} when: event: - tag --- kind: pipeline type: docker name: test depends_on: - selfhosted - dockerhub - name: test image: registry.mgrote.net/python-api-server:latest environment: MAX_CONTENT_LENGTH: 50 UPLOAD_DIRECTORY: /uploads AUTH_TOKEN: myuploadtoken ENABLE_WEBSERVER: false commands: - | # führe Script nach Fehlern weiter aus set +e export TOKEN=myuploadtoken export URL="localhost:5000" mkdir -p tests echo -e Test: normaler Upload echo content > tests/file curl -X POST -H "token: $TOKEN" -F "file=@tests/file" $URL/upload | jq echo -e Test: leerer Upload curl -X POST -H "token: $TOKEN" $URL/upload | jq echo -e Test: fehlerhafter Dateiname Upload touch ./tests/'hallo\welt.txt' curl -X POST -H "token: $TOKEN" -F "file=@tests/hallo\welt.txt" $URL/upload | jq echo -e Test: List Files curl -H "token: $TOKEN" $URL/list | jq echo -e Test: download Datei wget $URL/download/file -o ./tests/file ls -lah ./tests/file echo -e Test: download nicht vorhandene Datei wget $URL/download/file2 echo -e Test: lösche Datei curl -X DELETE -H "token: $TOKEN" $URL/delete/file | jq echo -e Test: lösche nicht vorhandene Datei curl -X DELETE -H "token: $TOKEN" $URL/delete/file2 | jq echo -e Test: check health curl $URL/health rm -rf tests