Skip to content

Commit 62c809c

Browse files
authored
Update pr.yaml
1 parent f8a16b6 commit 62c809c

1 file changed

Lines changed: 115 additions & 36 deletions

File tree

.github/workflows/pr.yaml

Lines changed: 115 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
on: pull_request
2-
name: Review
2+
name: PR Review
33
jobs:
44
changelog:
55
runs-on: ubuntu-latest
@@ -18,65 +18,144 @@ jobs:
1818
- name: Check that changelog has been updated.
1919
run: git diff --exit-code origin/${{ github.base_ref }} -- CHANGELOG.md && exit 1 || exit 0
2020

21-
validate-composer-files:
22-
name: Validate composer
23-
runs-on: ubuntu-latest
24-
steps:
25-
- uses: actions/checkout@v4
26-
- name: Validate composer files
27-
run: |
28-
# Note that we don't use the --strict flag on validate due to the
29-
# package drupal/config_entity_revisions 2.0.x-dev being considered a
30-
# version cf.
31-
# https://getcomposer.org/doc/articles/versions.md#branches
32-
docker compose run --rm php composer validate composer.json
33-
- name: Check that composer file is normalized
34-
run: |
35-
docker compose run --rm php composer install
36-
docker compose run --rm php composer normalize --dry-run
37-
3821
test-composer-files:
39-
name: Test composer files
22+
name: Validate composer
4023
runs-on: ubuntu-latest
4124
strategy:
4225
matrix:
26+
php-versions: [ '8.1' ]
4327
dependency-version: [ prefer-lowest, prefer-stable ]
4428
steps:
45-
- uses: actions/checkout@v4
46-
- name: Check that dependencies resolve.
29+
- uses: actions/checkout@master
30+
- name: Setup PHP, with composer and extensions
31+
uses: shivammathur/setup-php@v2
32+
with:
33+
php-version: ${{ matrix.php-versions }}
34+
extensions: json
35+
coverage: none
36+
tools: composer:v2
37+
# https://github.com/shivammathur/setup-php#cache-composer-dependencies
38+
- name: Get composer cache directory
39+
id: composer-cache
40+
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
41+
- name: Cache dependencies
42+
uses: actions/cache@v4
43+
with:
44+
path: ${{ steps.composer-cache.outputs.dir }}
45+
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
46+
restore-keys: ${{ runner.os }}-composer-
47+
- name: Validate composer files
4748
run: |
48-
# Clean up before update (cf. https://www.drupal.org/project/simplesamlphp_auth/issues/3350773)
49-
rm -fr vendor/
50-
docker compose run --rm php composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction
49+
composer validate --strict composer.json
50+
# Check that dependencies resolve.
51+
composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction
5152
5253
php-coding-standards:
5354
name: PHP coding standards
5455
runs-on: ubuntu-latest
56+
strategy:
57+
matrix:
58+
php-versions: [ '8.1' ]
59+
dependency-version: [ prefer-lowest, prefer-stable ]
5560
steps:
56-
- uses: actions/checkout@v4
61+
- uses: actions/checkout@master
62+
- name: Setup PHP, with composer and extensions
63+
uses: shivammathur/setup-php@v2
64+
with:
65+
php-version: ${{ matrix.php-versions }}
66+
extensions: json
67+
coverage: none
68+
tools: composer:v2
69+
# https://github.com/shivammathur/setup-php#cache-composer-dependencies
70+
- name: Get composer cache directory
71+
id: composer-cache
72+
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
73+
- name: Cache dependencies
74+
uses: actions/cache@v2
75+
with:
76+
path: ${{ steps.composer-cache.outputs.dir }}
77+
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
78+
restore-keys: ${{ runner.os }}-composer-
5779
- name: Install Dependencies
5880
run: |
59-
docker compose run --rm php composer install
81+
composer install --no-interaction --no-progress
6082
- name: PHPCS
6183
run: |
62-
docker compose run --rm php composer coding-standards-check/phpcs
84+
composer coding-standards-check/phpcs
6385
6486
php-code-analysis:
6587
name: PHP code analysis
6688
runs-on: ubuntu-latest
89+
strategy:
90+
matrix:
91+
php-versions: [ '8.1' ]
92+
dependency-version: [ prefer-lowest, prefer-stable ]
6793
steps:
68-
- uses: actions/checkout@v4
69-
- name: Code analysis
94+
- uses: actions/checkout@master
95+
- name: Setup PHP, with composer and extensions
96+
uses: shivammathur/setup-php@v2
97+
with:
98+
php-version: ${{ matrix.php-versions }}
99+
extensions: json, gd
100+
coverage: none
101+
tools: composer:v2
102+
# https://github.com/shivammathur/setup-php#cache-composer-dependencies
103+
- name: Get composer cache directory
104+
id: composer-cache
105+
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
106+
- name: Cache dependencies
107+
uses: actions/cache@v4
108+
with:
109+
path: ${{ steps.composer-cache.outputs.dir }}
110+
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
111+
restore-keys: ${{ runner.os }}-composer-
112+
- name: drupal-check
70113
run: |
71-
./scripts/code-analysis
114+
# We need a Drupal project to run drupal-check (cf. https://github.com/mglaman/drupal-check#usage)
115+
# Install Drupal
116+
composer --no-interaction create-project drupal/recommended-project:^9 --stability=dev drupal
117+
# Copy our module source code into the Drupal module folder.
118+
mkdir -p drupal/web/modules/contrib/os2forms_sync
119+
cp -r os2forms_sync.* composer.json src drupal/web/modules/contrib/os2forms_sync
120+
# Add our module as a composer repository.
121+
composer --no-interaction --working-dir=drupal config repositories.os2forms/os2forms_sync path web/modules/contrib/os2forms_sync
122+
# Restore Drupal composer repository.
123+
composer --no-interaction --working-dir=drupal config repositories.drupal composer https://packages.drupal.org/8
72124
73-
coding-standards-markdown:
74-
name: Markdown coding standards
125+
# Require our module.
126+
composer --no-interaction --working-dir=drupal require 'os2forms/os2forms_sync:*'
127+
128+
# Check code
129+
composer --no-interaction --working-dir=drupal require --dev drupal/core-dev
130+
cd drupal/web/modules/contrib/os2forms_sync
131+
# Remove our non-dev dependencies to prevent duplicated Drupal installation
132+
# PHP Fatal error: Cannot redeclare drupal_get_filename() (previously declared in /home/runner/work/os2forms_sync/os2forms_sync/drupal/web/modules/contrib/os2forms_sync/vendor/drupal/core/includes/bootstrap.inc:190) in /home/runner/work/os2forms_sync/os2forms_sync/drupal/web/core/includes/bootstrap.inc on line 190
133+
# Use sed to remove the "require" property in composer.json
134+
sed -i '/^\s*"require":/,/^\s*}/d' composer.json
135+
composer --no-interaction install
136+
composer code-analysis
137+
138+
markdown-coding-standards:
75139
runs-on: ubuntu-latest
140+
name: Markdown coding standards
76141
steps:
77142
- name: Checkout
78143
uses: actions/checkout@v4
79-
80-
- name: Coding standards
81-
run: |
82-
docker compose run --rm markdownlint markdownlint '**/*.md'
144+
- name: Get yarn cache directory path
145+
id: yarn-cache-dir-path
146+
run: echo "::set-output name=dir::$(yarn cache dir)"
147+
- name: Cache yarn packages
148+
uses: actions/cache@v4
149+
id: yarn-cache
150+
with:
151+
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
152+
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
153+
restore-keys: |
154+
${{ runner.os }}-yarn-
155+
- name: Yarn install
156+
uses: actions/setup-node@v2
157+
with:
158+
node-version: '22'
159+
- run: yarn install
160+
- name: coding-standards-check
161+
run: yarn coding-standards-check

0 commit comments

Comments
 (0)