diff --git a/.woodpecker/build.yaml b/.woodpecker/build.yaml index da5379e3e9..e03f7a6c04 100644 --- a/.woodpecker/build.yaml +++ b/.woodpecker/build.yaml @@ -1,6 +1,11 @@ --- variables: - &golang_image 'docker.io/golang:1.24' + - &environment + HTTP_PROXY: + from_secret: ci_http_proxy + HTTPS_PROXY: + from_secret: ci_http_proxy when: - event: [ push , manual ] @@ -11,43 +16,34 @@ workspace: base: /go # use the go home dir as workspace to share go packages, see https://woodpecker-ci.org/docs/usage/workflow-syntax#workspace steps: - inotify-info: - image: *golang_image - depends_on: [] # enable parallel steps - commands: - - git clone https://github.com/mikesart/inotify-info - - cd inotify-info - - make - - _release/inotify-info generate: image: *golang_image - depends_on: [] # enable parallel steps + environment: *environment commands: - make go-generate - git diff --exit-code lint: image: *golang_image - depends_on: [ generate ] + environment: *environment commands: - make lint build: image: *golang_image - depends_on: [ generate ] + environment: *environment commands: - make build-ci - test: - image: *golang_image - depends_on: [ build ] - commands: - - apt-get update -qq && apt-get install -y inotify-tools - - make test - test-integration: - image: *golang_image - depends_on: [ build ] - commands: - - make test-integration - test-benchmark: - image: *golang_image + upload: + image: minio/mc:RELEASE.2021-10-07T04-19-58Z depends_on: [ build ] + environment: + AWS_ACCESS_KEY_ID: + from_secret: cache_s3_access_key + AWS_SECRET_ACCESS_KEY: + from_secret: cache_s3_secret_key + S3_BUCKET: + from_secret: cache_s3_bucket + S3_ENDPOINT: + from_secret: cache_s3_server commands: - - make test-benchmark + - mc alias set s3 $S3_ENDPOINT $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY + - mc cp -a --attr="content-type=application/octet-stream" $CI_WORKSPACE/cmd/revad/revad s3/$S3_BUCKET/opencloud-eu/reva/$CI_COMMIT_SHA-$CI_PIPELINE_NUMBER-revad \ No newline at end of file diff --git a/.woodpecker/cs3api-validator-decomposed.yaml b/.woodpecker/cs3api-validator-decomposed.yaml index 55d45dff6e..053913ea19 100644 --- a/.woodpecker/cs3api-validator-decomposed.yaml +++ b/.woodpecker/cs3api-validator-decomposed.yaml @@ -1,4 +1,6 @@ --- +depends_on: [ build ] + variables: - &golang_image 'docker.io/golang:1.24' - &cs3apivalidator_image 'owncloud/cs3api-validator:0.2.1' @@ -12,22 +14,24 @@ workspace: base: /go # use the go home dir as workspace to share go packages, see https://woodpecker-ci.org/docs/usage/workflow-syntax#workspace steps: - wait_for_server: - image: ghcr.io/dvjn/woodpecker-is-it-up-yet-plugin - settings: - host: revad-services - port: 19000 - cs3api-validator-oci: - image: *cs3apivalidator_image - depends_on: [ wait_for_server ] + fetch-binary: + image: minio/mc:RELEASE.2021-10-07T04-19-58Z + environment: + AWS_ACCESS_KEY_ID: + from_secret: cache_s3_access_key + AWS_SECRET_ACCESS_KEY: + from_secret: cache_s3_secret_key + S3_BUCKET: + from_secret: cache_s3_bucket + S3_ENDPOINT: + from_secret: cache_s3_server commands: - - /usr/bin/cs3api-validator /var/lib/cs3api-validator --endpoint=revad-services:19000 - -services: + - mc alias set s3 $S3_ENDPOINT $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY + - mc cp -a s3/$S3_BUCKET/opencloud-eu/reva/$CI_COMMIT_SHA-$CI_PIPELINE_NUMBER-revad $CI_WORKSPACE/cmd/revad/revad revad-services: image: *golang_image + detach: true commands: - - go build -o ./cmd/revad/revad ./cmd/revad - cd tests/oc-integration-tests/ci/ - ../../../cmd/revad/revad -c frontend.toml & - ../../../cmd/revad/revad -c gateway.toml & @@ -36,4 +40,13 @@ services: - ../../../cmd/revad/revad -c storage-publiclink.toml & - ../../../cmd/revad/revad -c shares.toml & - ../../../cmd/revad/revad -c permissions-demo-ci.toml & - - ../../../cmd/revad/revad -c users.toml \ No newline at end of file + - ../../../cmd/revad/revad -c users.toml + wait_for_server: + image: ghcr.io/dvjn/woodpecker-is-it-up-yet-plugin + settings: + host: revad-services + port: 19000 + cs3api-validator-oci: + image: *cs3apivalidator_image + commands: + - /usr/bin/cs3api-validator /var/lib/cs3api-validator --endpoint=revad-services:19000 diff --git a/.woodpecker/cs3api-validator-posix.yaml b/.woodpecker/cs3api-validator-posix.yaml deleted file mode 100644 index 50dc00398e..0000000000 --- a/.woodpecker/cs3api-validator-posix.yaml +++ /dev/null @@ -1,38 +0,0 @@ ---- -variables: - - &golang_image 'docker.io/golang:1.24' - - &cs3apivalidator_image 'owncloud/cs3api-validator:0.2.1' - -when: - - event: [ manual ] - -workspace: - base: /go # use the go home dir as workspace to share go packages, see https://woodpecker-ci.org/docs/usage/workflow-syntax#workspace - -steps: - wait_for_server: - image: ghcr.io/dvjn/woodpecker-is-it-up-yet-plugin - settings: - host: revad-services - port: 19000 - cs3api-validator-oci: - image: *cs3apivalidator_image - depends_on: [ wait_for_server ] - commands: - - /usr/bin/cs3api-validator /var/lib/cs3api-validator --endpoint=revad-services:19000 - -services: - revad-services: - image: *golang_image - commands: - - apt-get update -qq && apt-get install -y inotify-tools - - go build -o ./cmd/revad/revad ./cmd/revad - - cd tests/oc-integration-tests/ci/ - - ../../../cmd/revad/revad -c frontend.toml & - - ../../../cmd/revad/revad -c gateway.toml & - - ../../../cmd/revad/revad -c storage-users-posix.toml & - - ../../../cmd/revad/revad -c storage-shares.toml & - - ../../../cmd/revad/revad -c storage-publiclink.toml & - - ../../../cmd/revad/revad -c shares.toml & - - ../../../cmd/revad/revad -c permissions-demo-ci.toml & - - ../../../cmd/revad/revad -c users.toml \ No newline at end of file diff --git a/.woodpecker/purge-cache.yaml b/.woodpecker/purge-cache.yaml new file mode 100644 index 0000000000..692e169112 --- /dev/null +++ b/.woodpecker/purge-cache.yaml @@ -0,0 +1,29 @@ +--- +depends_on: [test, test-integration] + +variables: + - &minio_image 'minio/mc:RELEASE.2021-10-07T04-19-58Z' + - &s3_plugin_image 'plugins/s3-cache:1' + +when: + - event: [ push , manual ] + branch: ${CI_REPO_DEFAULT_BRANCH} + - event: [ pull_request ] + +skip_clone: true +steps: + purge: + image: *minio_image + environment: + AWS_ACCESS_KEY_ID: + from_secret: cache_s3_access_key + AWS_SECRET_ACCESS_KEY: + from_secret: cache_s3_secret_key + S3_BUCKET: + from_secret: cache_s3_bucket + S3_ENDPOINT: + from_secret: cache_s3_server + commands: + - mc alias set s3 $S3_ENDPOINT $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY + - mc rm --recursive --force s3/$S3_BUCKET/opencloud-eu/reva + - mc ls --recursive s3/$S3_BUCKET/opencloud-eu/reva \ No newline at end of file diff --git a/.woodpecker/test-benchmark.yaml b/.woodpecker/test-benchmark.yaml new file mode 100644 index 0000000000..96d65ce01f --- /dev/null +++ b/.woodpecker/test-benchmark.yaml @@ -0,0 +1,22 @@ +--- +variables: + - &golang_image 'docker.io/golang:1.24' + +when: + - event: [ push , manual ] + branch: ${CI_REPO_DEFAULT_BRANCH} + - event: [ pull_request ] + +workspace: + base: /go # use the go home dir as workspace to share go packages, see https://woodpecker-ci.org/docs/usage/workflow-syntax#workspace + +steps: + test-benchmark: + image: *golang_image + environment: + HTTP_PROXY: + from_secret: ci_http_proxy + HTTPS_PROXY: + from_secret: ci_http_proxy + commands: + - make test-benchmark diff --git a/.woodpecker/test-integration.yaml b/.woodpecker/test-integration.yaml new file mode 100644 index 0000000000..55da3bb47b --- /dev/null +++ b/.woodpecker/test-integration.yaml @@ -0,0 +1,39 @@ +--- +depends_on: [ build ] + +variables: + - &golang_image 'docker.io/golang:1.24' + +when: + - event: [ push , manual ] + branch: ${CI_REPO_DEFAULT_BRANCH} + - event: [ pull_request ] + +workspace: + base: /go # use the go home dir as workspace to share go packages, see https://woodpecker-ci.org/docs/usage/workflow-syntax#workspace + +steps: + fetch-binary: + image: minio/mc:RELEASE.2021-10-07T04-19-58Z + environment: + AWS_ACCESS_KEY_ID: + from_secret: cache_s3_access_key + AWS_SECRET_ACCESS_KEY: + from_secret: cache_s3_secret_key + S3_BUCKET: + from_secret: cache_s3_bucket + S3_ENDPOINT: + from_secret: cache_s3_server + commands: + - mc alias set s3 $S3_ENDPOINT $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY + - mc cp -a s3/$S3_BUCKET/opencloud-eu/reva/$CI_COMMIT_SHA-$CI_PIPELINE_NUMBER-revad $CI_WORKSPACE/cmd/revad/revad + test-integration: + image: *golang_image + environment: + HTTP_PROXY: + from_secret: ci_http_proxy + HTTPS_PROXY: + from_secret: ci_http_proxy + commands: + # `make test-integration` rebuilds the binaries, which is unnecessary in the pipeline, so only using `go test` here + - cd tests/integration && go test -race ./... \ No newline at end of file diff --git a/.woodpecker/test.yaml b/.woodpecker/test.yaml new file mode 100644 index 0000000000..e37e9a97e5 --- /dev/null +++ b/.woodpecker/test.yaml @@ -0,0 +1,23 @@ +--- +variables: + - &golang_image 'docker.io/golang:1.24' + +when: + - event: [ push , manual ] + branch: ${CI_REPO_DEFAULT_BRANCH} + - event: [ pull_request ] + +workspace: + base: /go # use the go home dir as workspace to share go packages, see https://woodpecker-ci.org/docs/usage/workflow-syntax#workspace + +steps: + test: + image: *golang_image + environment: + HTTP_PROXY: + from_secret: ci_http_proxy + HTTPS_PROXY: + from_secret: ci_http_proxy + commands: + - apt-get update -qq && apt-get install -y inotify-tools + - make test