diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 0000000..2470443 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,9 @@ +# https://github.com/actions/labeler + +docs: docs/** + +front-end: frontend/** + +api: api/** + +github: .github/** diff --git a/.github/workflows/api-pull-request.yml b/.github/workflows/api-pull-request.yml new file mode 100644 index 0000000..c3a43e7 --- /dev/null +++ b/.github/workflows/api-pull-request.yml @@ -0,0 +1,93 @@ +name: API Pull Request + +on: + workflow_run: + workflows: ['Github Labeler'] + types: + - completed + +# defaults: +# run: +# working-directory: test + +jobs: + test: + if: ${{ github.event_name == 'push' || contains( github.event.pull_request.labels.*.name, 'github') || contains( github.event.pull_request.labels.*.name, 'api') }} + runs-on: General-Purpose-8c-Runner + name: API Unit Tests + + # services: + # postgres: + # image: postgres:11.12-alpine + # env: + # POSTGRES_USER: postgres + # POSTGRES_PASSWORD: postgres + # POSTGRES_DB: postgres + # ports: ['5432:5432'] + # options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + + # strategy: + # max-parallel: 2 + # matrix: + # python-version: ['3.10', '3.11'] + + steps: + - name: Cloning repo + uses: actions/checkout@v3 + + - name: Install requirements + run: pip install -r requirements.txt + + # - uses: actions/setup-python@v4 + # with: + # python-version: ${{ matrix.python-version }} + # cache: 'poetry' + + # - name: Install Dependencies + # if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' + # run: make install-packages + + # - name: Run Linters + # run: make lint + + # - name: Create analytics database + # env: + # PGPASSWORD: postgres + # run: createdb -h localhost -U postgres -p 5432 analytics + + # - name: Check for missing migrations + # env: + # DOTENV_OVERRIDE_FILE: .env-ci-testmon + # opts: --no-input --dry-run --check + # run: make django-make-migrations + + # - name: Restore cached testmon data + # if: ${{ github.event_name == 'pull_request' }} + # id: cache-testmon-restore + # uses: actions/cache/restore@v3 + # with: + # enableCrossOsArchive: true + # path: | + # /home/runner/work/flagsmith/flagsmith/api/.testmondata* + # key: testmon-data-python${{ matrix.python-version }}-${{ github.event.pull_request.base.sha }} + # restore-keys: testmon-data-python${{ matrix.python-version }}- + + - name: Run Tests + run: pytest + + # - name: Save testmon data cache + # id: cache-testmon-save + # if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} + # uses: actions/cache/save@v3 + # with: + # path: | + # /home/runner/work/flagsmith/flagsmith/api/.testmondata* + # key: testmon-data-python${{ matrix.python-version }}-${{github.sha}} + + # - name: Upload Coverage + # uses: codecov/codecov-action@v3 + # env: + # PYTHON: ${{ matrix.python-version }} + # with: + # token: ${{ secrets.CODECOV_TOKEN }} + # env_vars: PYTHON \ No newline at end of file diff --git a/.github/workflows/github-labeler.yml b/.github/workflows/github-labeler.yml new file mode 100644 index 0000000..defa3c2 --- /dev/null +++ b/.github/workflows/github-labeler.yml @@ -0,0 +1,15 @@ +name: Github Labeler + +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + +jobs: + apply-labels: + permissions: + contents: read + pull-requests: write + runs-on: ubuntu-latest + + steps: + - uses: actions/labeler@v4 \ No newline at end of file diff --git a/.github/workflows/test-depends-workflow.yml b/.github/workflows/test-depends-workflow.yml new file mode 100644 index 0000000..bde24f0 --- /dev/null +++ b/.github/workflows/test-depends-workflow.yml @@ -0,0 +1,21 @@ +name: Test depends workflow + +# on: +# # pull_request: +# # types: [opened, synchronize, reopened, ready_for_review] +# workflow_run: +# workflows: ["Github Labeler"] +# types: +# - completed + +on: + workflow_run: + workflows: [Github Labeler] + types: + - completed + +jobs: + on-success: + runs-on: ubuntu-latest + steps: + - run: echo 'The triggering workflow passed' \ No newline at end of file