Skip to content

Commit

Permalink
ci(github): test
Browse files Browse the repository at this point in the history
  • Loading branch information
skamril committed Aug 14, 2024
1 parent 0318e85 commit a185db5
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 20 deletions.
9 changes: 6 additions & 3 deletions .github/workflows/commitlint.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: Lint Commit Messages
name: commitlint

on: [pull_request]

permissions:
Expand All @@ -9,5 +10,7 @@ jobs:
commitlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: wagoid/commitlint-github-action@v5
- name: Checkout GitHub repo
uses: actions/checkout@v4
- name: Lint Commit Messages
uses: wagoid/commitlint-github-action@v5
3 changes: 1 addition & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name: deploy

on:
push:
branches:
- "master"
- "hotfix/**"

jobs:
binary:
Expand All @@ -12,7 +12,6 @@ jobs:
max-parallel: 3
matrix:
os: [ windows-latest, ubuntu-20.04, ubuntu-22.04]

steps:
- name: 🐙 Checkout GitHub repo (+ download lfs dependencies)
uses: actions/checkout@v4
Expand Down
109 changes: 95 additions & 14 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,47 @@
name: main
on:
push:
branches:
- "**"

# If a workflow is skipped due to path filtering, branch filtering or a commit message,
# then checks associated with that workflow will remain in a "Pending" state.
# A pull request that requires those checks to be successful will be blocked from merging.
#
# So we use conditions to control job execution (`if: ...`) instead of `pull_request` event parameters.
# A job that is skipped will report its status as "Success".
# It will not prevent a pull request from merging, even if it is a required check.
on: [pull_request]

jobs:

################################################################
## Back-end
################################################################

detect-backend-changes:
runs-on: ubuntu-20.04
outputs:
has-changes: ${{ steps.detect-changes.outputs.has-changes }}
steps:
- name: Checkout GitHub repo
uses: actions/checkout@v4
with:
fetch-depth: 0 # Ensure full history is fetched
- name: Check if backend files have changed
id: detect-changes
run: |
git fetch origin ${{ github.event.pull_request.base.ref }} --depth=1
if git diff --name-only origin/${{ github.event.pull_request.base.ref }}...HEAD | grep -Eq '^antarest/|^tests/|^resources/|^requirements.*\.txt$'; then
echo "Backend files have changed"
echo "has-changes=true" >> $GITHUB_OUTPUT
else
echo "No backend files have changed"
echo "has-changes=false" >> $GITHUB_OUTPUT
fi
python-lint:
needs: detect-backend-changes
if: ${{ needs.detect-backend-changes.outputs.has-changes == 'true' }}
runs-on: ubuntu-20.04
steps:
- name: Checkout github repo (+ download lfs dependencies)
- name: Checkout GitHub repo (+ download lfs dependencies)
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
Expand All @@ -34,14 +67,15 @@ jobs:
mypy --install-types --non-interactive
python-test:
needs: detect-backend-changes
if: ${{ needs.detect-backend-changes.outputs.has-changes == 'true' }}
runs-on: ${{ matrix.os }}
strategy:
max-parallel: 9
matrix:
os: [windows-latest, ubuntu-20.04]

steps:
- name: Checkout github repo (+ download lfs dependencies)
- name: Checkout GitHub repo (+ download lfs dependencies)
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
Expand All @@ -65,10 +99,50 @@ jobs:
name: python-code-coverage-report
path: coverage.xml

python-tests:
needs: [detect-backend-changes, python-test]
if: ${{ needs.detect-backend-changes.outputs.has-changes == 'true' && always() }}
runs-on: ubuntu-20.04
steps:
- name: Results of Python tests by OS
run: exit 1
# See https://stackoverflow.com/a/67532120/4907315
if: >-
${{
contains(needs.*.result, 'failure')
|| contains(needs.*.result, 'cancelled') }}
################################################################
## Front-end
################################################################

detect-frontend-changes:
runs-on: ubuntu-20.04
outputs:
has-changes: ${{ steps.detect-changes.outputs.has-changes }}
steps:
- name: Checkout GitHub repo
uses: actions/checkout@v4
with:
fetch-depth: 0 # Ensure full history is fetched
- name: Check if front-end files have changed
id: detect-changes
run: |
git fetch origin ${{ github.event.pull_request.base.ref }} --depth=1
if git diff --name-only origin/${{ github.event.pull_request.base.ref }}...HEAD | grep -q '^webapp/'; then
echo "Front-end files have changed"
echo "has-changes=true" >> $GITHUB_OUTPUT
else
echo "No front-end files in have changed"
echo "has-changes=false" >> $GITHUB_OUTPUT
fi
npm-setup:
needs: detect-frontend-changes
if: ${{ needs.detect-frontend-changes.outputs.has-changes == 'true' }}
runs-on: ubuntu-20.04
steps:
- name: Checkout github repo
- name: Checkout GitHub repo
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
Expand All @@ -91,7 +165,7 @@ jobs:
needs: npm-setup
runs-on: ubuntu-20.04
steps:
- name: Checkout github repo
- name: Checkout GitHub repo
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
Expand All @@ -111,7 +185,7 @@ jobs:
needs: npm-setup
runs-on: ubuntu-20.04
steps:
- name: Checkout github repo
- name: Checkout GitHub repo
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
Expand All @@ -131,7 +205,7 @@ jobs:
needs: npm-setup
runs-on: ubuntu-20.04
steps:
- name: Checkout github repo
- name: Checkout GitHub repo
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
Expand All @@ -150,17 +224,24 @@ jobs:
NODE_OPTIONS: --max-old-space-size=8192
DISABLE_ESLINT_PLUGIN: true

################################################################
## SonarCloud
################################################################

sonarcloud:
runs-on: ubuntu-20.04
if: ${{ always() }}
needs: [python-test, npm-test]
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Checkout GitHub repo
uses: actions/checkout@v4
- name: Download python coverage report
uses: actions/download-artifact@v4
with:
name: python-code-coverage-report
# Config in `sonar-project.properties` file
- name: SonarCloud Scan
uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
2 changes: 1 addition & 1 deletion .github/workflows/worker.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: worker

on:
push:
branches:
Expand All @@ -8,7 +9,6 @@ on:
jobs:
binary:
runs-on: windows-latest

steps:
- name: 🐙 Checkout GitHub repo (+ download lfs dependencies)
uses: actions/checkout@v4
Expand Down

0 comments on commit a185db5

Please sign in to comment.