diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..dc6af8d --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,17 @@ +### :scroll: Description + +Changes proposed in this pull request: +* ... + +### :hammer: Breaking Changes + +* Report any api changes + +### :white_check_mark: Checklist: + +- [ ] Created tests which fail without the change (if possible) +- [ ] Extended the documentation (if necessary) + +### :camera_flash: Screenshots + +Screenshots to review the UX/UI Design: diff --git a/.github/workflows/auto-branch-update.yaml b/.github/workflows/auto-branch-update.yaml new file mode 100644 index 0000000..28e0e79 --- /dev/null +++ b/.github/workflows/auto-branch-update.yaml @@ -0,0 +1,17 @@ +name: "Autoupdate PR branches" + +on: + push: + branches: + - dev + - "epic/**" + +jobs: + autoupdate: + name: autoupdate + runs-on: ubuntu-22.04 + steps: + - uses: docker://chinthakagodawita/autoupdate-action:v1 + env: + GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' + MERGE_CONFLICT_ACTION: "ignore" diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml new file mode 100644 index 0000000..881a990 --- /dev/null +++ b/.github/workflows/build-and-test.yml @@ -0,0 +1,90 @@ +name: Build and Test + +on: + push: + branches: + - dev + pull_request: + branches: + - dev + - beta + - "epic/**" + types: [opened, synchronize, reopened, ready_for_review] + +jobs: + build: + name: "Build" + timeout-minutes: 10 + + if: github.event.pull_request.draft == false + + runs-on: ubuntu-latest + + steps: + - name: "Checkout Branch" + uses: actions/checkout@v3 + + - name: "Setup Java" + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: 17 + cache: 'gradle' + + - name: Setup Gradle cache + uses: actions/cache@v3 + with: + path: ~/.gradle + key: ${{ runner.os }}-gradle-${{ hashFiles('versions.properties') }}-${{ github.sha }} + + - name: "prepare libs for build" + run: ./prepare.sh + + - name: "build backend" + run: ./gradlew --build-cache build -x test + + - name: Upload build reports + uses: actions/upload-artifact@v3 + if: ${{ failure() || contains(github.event.pull_request.labels.*.name, 'force reports') }} + with: + name: Build Reports + path: "**/build/reports" + + test: + name: "Test" + timeout-minutes: 120 + + if: github.event.pull_request.draft == false + needs: build + + runs-on: ubuntu-latest + + steps: + - name: "Checkout Branch" + uses: actions/checkout@v3 + + - name: "Setup Java" + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: 17 + cache: 'gradle' + + - name: Setup Gradle cache + uses: actions/cache@v3 + with: + path: ~/.gradle + key: ${{ runner.os }}-gradle-${{ hashFiles('versions.properties') }}-${{ github.sha }} + + - name: "prepare libs for tests" + run: ./prepare.sh + + - name: "test backend" + run: ./gradlew --build-cache check + + - name: Upload test reports + uses: actions/upload-artifact@v3 + if: ${{ failure() || contains(github.event.pull_request.labels.*.name, 'force reports') }} + with: + name: Test Reports + path: "**/build/reports"