From a61bd5aa85a067e207c667b7cdc7a1e4599f9ccc Mon Sep 17 00:00:00 2001 From: qwerty287 Date: Sat, 15 Jun 2024 20:14:45 +0000 Subject: [PATCH] Improve testing workflows (#7) - make files non hidden - remove forgejo actions files - simplfy commands - remove useless `setup` step (checkout is done by CI, and clean up is not necessary before the build) Reviewed-on: https://codeberg.org/mvdkleijn/forgejo-sdk/pulls/7 Co-authored-by: qwerty287 Co-committed-by: qwerty287 --- {.github => .forgejo}/issue_template.md | 0 .../pull_request_template.md | 0 .forgejo/workflows/testing.yml | 52 ------------------- .woodpecker/.integration.yml | 48 ----------------- .woodpecker/.lint.yml | 30 ----------- .woodpecker/{.build.yml => build.yml} | 0 .woodpecker/integration.yml | 50 ++++++++++++++++++ .woodpecker/lint.yml | 24 +++++++++ 8 files changed, 74 insertions(+), 130 deletions(-) rename {.github => .forgejo}/issue_template.md (100%) rename {.github => .forgejo}/pull_request_template.md (100%) delete mode 100644 .forgejo/workflows/testing.yml delete mode 100644 .woodpecker/.integration.yml delete mode 100644 .woodpecker/.lint.yml rename .woodpecker/{.build.yml => build.yml} (100%) create mode 100644 .woodpecker/integration.yml create mode 100644 .woodpecker/lint.yml diff --git a/.github/issue_template.md b/.forgejo/issue_template.md similarity index 100% rename from .github/issue_template.md rename to .forgejo/issue_template.md diff --git a/.github/pull_request_template.md b/.forgejo/pull_request_template.md similarity index 100% rename from .github/pull_request_template.md rename to .forgejo/pull_request_template.md diff --git a/.forgejo/workflows/testing.yml b/.forgejo/workflows/testing.yml deleted file mode 100644 index 0b13eae..0000000 --- a/.forgejo/workflows/testing.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: testing - -on: - - pull_request - - push - -jobs: - testing: - runs-on: ubuntu-latest - env: - 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" - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 - with: - go-version: ">=1.20" - check-latest: true - - run: make clean - - run: make vet - - run: make ci-lint - - run: make build - - run: curl --noproxy "*" http://forgejo:3000/api/v1/version # verify connection to instance - - run: make test - services: - forgejo: - image: codeberg.org/forgejo/forgejo:1.21.5-0 - cmd: - - 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/.integration.yml b/.woodpecker/.integration.yml deleted file mode 100644 index 61dd62b..0000000 --- a/.woodpecker/.integration.yml +++ /dev/null @@ -1,48 +0,0 @@ -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: - - sleep 20 - - 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 deleted file mode 100644 index f706bc9..0000000 --- a/.woodpecker/.lint.yml +++ /dev/null @@ -1,30 +0,0 @@ -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 diff --git a/.woodpecker/.build.yml b/.woodpecker/build.yml similarity index 100% rename from .woodpecker/.build.yml rename to .woodpecker/build.yml diff --git a/.woodpecker/integration.yml b/.woodpecker/integration.yml new file mode 100644 index 0000000..3740148 --- /dev/null +++ b/.woodpecker/integration.yml @@ -0,0 +1,50 @@ +variables: + - &golang_image 'golang:1.22' + +when: + - branch: main + event: push + +steps: + - name: verify_connection + image: *golang_image + commands: + - sleep 20 + - 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: + - 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..6b1d4c7 --- /dev/null +++ b/.woodpecker/lint.yml @@ -0,0 +1,24 @@ +variables: + - &golang_image 'golang:1.22' + +when: + - event: [push, pull_request, manual] + +steps: + - name: vendor + image: *golang_image + directory: forgejo + commands: + - go mod vendor + + - name: vet + image: *golang_image + depends_on: [vendor] + commands: + - make vet + + - name: lint + image: *golang_image + depends_on: [vendor] + commands: + - make ci-lint