diff --git a/.woodpecker/.build.yml b/.woodpecker/.build.yml new file mode 100644 index 0000000..89c5597 --- /dev/null +++ b/.woodpecker/.build.yml @@ -0,0 +1,15 @@ +variables: + - &golang_image 'golang:1.22' + +when: + - branch: main + event: push + +steps: + - name: build + image: *golang_image + commands: + - make build + +depends_on: + - lint \ No newline at end of file diff --git a/.woodpecker/.integration.yml b/.woodpecker/.integration.yml new file mode 100644 index 0000000..ec11fe7 --- /dev/null +++ b/.woodpecker/.integration.yml @@ -0,0 +1,47 @@ +variables: + - &golang_image 'golang:1.22' + +when: + - branch: main + event: push + +steps: + - name: setup + image: *golang_image + environment: + GOPROXY: "https://goproxy.io" + GO111MODULE: "on" + HTTP_PROXY: "" + FORGEJO_SDK_TEST_URL: "http://forgejo:3000" + FORGEJO_SDK_TEST_USERNAME: "test01" + FORGEJO_SDK_TEST_PASSWORD: "test01" + commands: + - git checkout ${CI_COMMIT_SHA} + - go version + - make clean + + - name: verify_connection + image: *golang_image + commands: + - curl --noproxy "*" http://forgejo:3000/api/v1/version + + - name: test + image: *golang_image + environment: + GOPROXY: "https://goproxy.io" + GO111MODULE: "on" + HTTP_PROXY: "" + FORGEJO_SDK_TEST_URL: "http://forgejo:3000" + FORGEJO_SDK_TEST_USERNAME: "test01" + FORGEJO_SDK_TEST_PASSWORD: "test01" + commands: + - make test + +depends_on: + - build + +services: + - name: forgejo + image: codeberg.org/forgejo/forgejo:1.21.5-0 + commands: + - bash -c 'mkdir -p /tmp/conf/ && mkdir -p /tmp/data/ && echo "I_AM_BEING_UNSAFE_RUNNING_AS_ROOT = true" > /tmp/conf/app.ini && echo "[security]" >> /tmp/conf/app.ini && echo "INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE1NTg4MzY4ODB9.LoKQyK5TN_0kMJFVHWUW0uDAyoGjDP6Mkup4ps2VJN4" >> /tmp/conf/app.ini && echo "INSTALL_LOCK = true" >> /tmp/conf/app.ini && echo "SECRET_KEY = 2crAW4UANgvLipDS6U5obRcFosjSJHQANll6MNfX7P0G3se3fKcCwwK3szPyGcbo" >> /tmp/conf/app.ini && echo "PASSWORD_COMPLEXITY = off" >> /tmp/conf/app.ini && echo "[database]" >> /tmp/conf/app.ini && echo "DB_TYPE = sqlite3" >> /tmp/conf/app.ini && echo "[repository]" >> /tmp/conf/app.ini && echo "ROOT = /tmp/data/" >> /tmp/conf/app.ini && echo "[server]" >> /tmp/conf/app.ini && echo "ROOT_URL = http://forgejo:3000" >> /tmp/conf/app.ini && forgejo migrate -c /tmp/conf/app.ini && forgejo admin user create --username=test01 --password=test01 --email=test01@forgejo.org --admin=true --must-change-password=false --access-token -c /tmp/conf/app.ini && forgejo web -c /tmp/conf/app.ini' diff --git a/.woodpecker/.lint.yml b/.woodpecker/.lint.yml new file mode 100644 index 0000000..f706bc9 --- /dev/null +++ b/.woodpecker/.lint.yml @@ -0,0 +1,30 @@ +variables: + - &golang_image 'golang:1.22' + +when: + - event: [push, pull_request, manual] + +steps: + - name: setup + image: *golang_image + environment: + GOPROXY: "https://goproxy.io" + GO111MODULE: "on" + HTTP_PROXY: "" + FORGEJO_SDK_TEST_URL: "http://forgejo:3000" + FORGEJO_SDK_TEST_USERNAME: "test01" + FORGEJO_SDK_TEST_PASSWORD: "test01" + commands: + - git checkout ${CI_COMMIT_SHA} + - go version + - make clean + + - name: vet + image: *golang_image + commands: + - make vet + + - name: lint + image: *golang_image + commands: + - make ci-lint