-
Notifications
You must be signed in to change notification settings - Fork 3
feat!: new releasing system #22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| name: E2E | ||
|
|
||
| on: | ||
| workflow_call: | ||
|
|
||
| jobs: | ||
| e2e: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v6 | ||
| - name: Set up Python 3.10 | ||
| uses: actions/setup-python@v6 | ||
| with: | ||
| python-version: "3.10" | ||
| - name: Install Poetry | ||
| run: pipx install poetry==2.0.1 | ||
| - name: Install dependencies | ||
| run: poetry install | ||
| - name: Set up Node.js | ||
| uses: actions/setup-node@v6 | ||
| with: | ||
| node-version: '22' | ||
| - name: Install Cypress | ||
| working-directory: tests/e2e_tests | ||
| run: npm install cypress | ||
| - name: Run e2e tests | ||
| run: | | ||
| poetry run flask --app "tests.e2e_tests.e2e_app:create_app(config_path='tests/e2e_tests/e2e_test_config.yml')" run --debug --host=localhost & | ||
| for i in $(seq 1 30); do curl -sf http://localhost:5000/health/liveness > /dev/null && break || sleep 1; done | ||
| curl -sf http://localhost:5000/health/liveness > /dev/null || { echo "Flask app failed to start"; exit 1; } | ||
| cd tests/e2e_tests && npx cypress run --spec "cypress/e2e/**/*" | ||
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,20 @@ | ||||||||||
| name: Lint | ||||||||||
|
|
||||||||||
| on: | ||||||||||
| workflow_call: | ||||||||||
|
|
||||||||||
| jobs: | ||||||||||
| lint: | ||||||||||
| runs-on: ubuntu-latest | ||||||||||
| steps: | ||||||||||
| - uses: actions/checkout@v6 | ||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win Disable credential persistence on checkout.
🔒 Proposed fix - uses: actions/checkout@v6
+ with:
+ persist-credentials: false📝 Committable suggestion
Suggested change
🧰 Tools🪛 zizmor (1.26.1)[warning] 10-10: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false (artipacked) 🤖 Prompt for AI AgentsSource: Linters/SAST tools |
||||||||||
| - name: Set up Python 3.10 | ||||||||||
| uses: actions/setup-python@v6 | ||||||||||
| with: | ||||||||||
| python-version: "3.10" | ||||||||||
| - name: Install Poetry | ||||||||||
| run: pipx install poetry==2.0.1 | ||||||||||
| - name: Install dependencies | ||||||||||
| run: poetry install | ||||||||||
| - name: Run linters | ||||||||||
| run: make lint-check | ||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,32 @@ | ||||||||||
| name: Test | ||||||||||
|
|
||||||||||
| on: | ||||||||||
| workflow_call: | ||||||||||
| inputs: | ||||||||||
| upload-coveralls: | ||||||||||
| description: 'Upload coverage to Coveralls' | ||||||||||
| required: false | ||||||||||
| default: false | ||||||||||
| type: boolean | ||||||||||
|
|
||||||||||
| jobs: | ||||||||||
| test: | ||||||||||
| runs-on: ubuntu-latest | ||||||||||
| steps: | ||||||||||
| - uses: actions/checkout@v6 | ||||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win Disable credential persistence on checkout. Same rationale as the other reusable workflows: 🔒 Proposed fix - uses: actions/checkout@v6
+ with:
+ persist-credentials: false📝 Committable suggestion
Suggested change
🧰 Tools🪛 zizmor (1.26.1)[warning] 16-16: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false (artipacked) 🤖 Prompt for AI AgentsSource: Linters/SAST tools |
||||||||||
| - name: Set up Python 3.10 | ||||||||||
| uses: actions/setup-python@v6 | ||||||||||
| with: | ||||||||||
| python-version: "3.10" | ||||||||||
| - name: Install Poetry | ||||||||||
| run: pipx install poetry==2.0.1 | ||||||||||
| - name: Install dependencies | ||||||||||
| run: poetry install | ||||||||||
| - name: Run tests with coverage | ||||||||||
| run: make coverage | ||||||||||
| - name: Coveralls | ||||||||||
| if: ${{ inputs.upload-coveralls }} | ||||||||||
| uses: coverallsapp/github-action@v2 | ||||||||||
| with: | ||||||||||
| path-to-lcov: "./coverage.lcov" | ||||||||||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,6 +1,7 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| name: Testing pipeline | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| on: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| workflow_call: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| pull_request: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| branches: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - main | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -29,67 +30,13 @@ permissions: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| jobs: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lint: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Install Poetry | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: pip install poetry==2.0.1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Set up Python 3.10 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/setup-python@v6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| python-version: "3.10" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cache: 'poetry' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Install dependencies | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: poetry install | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Run linters | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: make lint-check | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Security audit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: make audit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: ./.github/workflows/lint.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| test: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Install Poetry | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: pip install poetry==2.0.1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Set up Python 3.10 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/setup-python@v6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| python-version: "3.10" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cache: 'poetry' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Install dependencies | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: poetry install | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Run tests with coverage | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: make coverage | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Coveralls | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: coverallsapp/github-action@v2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| path-to-lcov: "./coverage.lcov" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: ./.github/workflows/test.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| upload-coveralls: true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| secrets: inherit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
35
to
+39
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win Drop unnecessary
🔒 Proposed fix test:
uses: ./.github/workflows/test.yml
with:
upload-coveralls: true
- secrets: inherit📝 Committable suggestion
Suggested change
🧰 Tools🪛 zizmor (1.26.1)[warning] 36-36: secrets unconditionally inherited by called workflow (secrets-inherit): this reusable workflow (secrets-inherit) 🤖 Prompt for AI AgentsSource: Linters/SAST tools |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| e2e: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| steps: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - uses: actions/checkout@v6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Install Poetry | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: pip install poetry==2.0.1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Set up Python 3.10 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/setup-python@v6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| python-version: "3.10" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cache: 'poetry' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Install dependencies | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: poetry install | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Set up Node.js | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: actions/setup-node@v6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| node-version: '22' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Install Cypress | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| working-directory: tests/e2e_tests | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: npm install cypress | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - name: Run e2e tests | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| poetry run flask --app "tests.e2e_tests.e2e_app:create_app(config_path='tests/e2e_tests/e2e_test_config.yml')" run --debug --host=localhost & | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| for i in $(seq 1 30); do curl -sf http://localhost:5000/health/liveness > /dev/null && break || sleep 1; done | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| curl -sf http://localhost:5000/health/liveness > /dev/null || { echo "Flask app failed to start"; exit 1; } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cd tests/e2e_tests && npx cypress run --spec "cypress/e2e/**/*" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| uses: ./.github/workflows/e2e.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| { | ||
| ".": "1.0.0" | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -22,8 +22,5 @@ coverage: | |
| html-cov: coverage | ||
| poetry run coverage html | ||
|
|
||
| audit: | ||
| poetry run pip-audit || true | ||
|
|
||
| build: | ||
| poetry build | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win
Disable credential persistence on checkout.
Same rationale as the other reusable workflows — this job also runs
poetry installandnpm install, both of which execute third-party code.🔒 Proposed fix
📝 Committable suggestion
🧰 Tools
🪛 zizmor (1.26.1)
[warning] 10-10: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false
(artipacked)
🤖 Prompt for AI Agents
Source: Linters/SAST tools