Added workflows & moved stuff around

This commit is contained in:
2023-04-24 00:04:28 +03:00
parent c43587dfbc
commit 94fc354f71
17 changed files with 436 additions and 46 deletions

41
.editorconfig Normal file
View File

@@ -0,0 +1,41 @@
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
max_line_length = 160
tab_width = 2
trim_trailing_whitespace = true
[*.css]
indent_size = 4
tab_width = 4
[{*.sass,*.scss}]
tab_width = 4
[{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.rng,*.tld,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul,phpunit.xml.dist}]
indent_size = 4
tab_width = 4
[{*.ats,*.cts,*.mts,*.ts}]
indent_size = 4
tab_width = 4
[{*.ctp,*.hphp,*.inc,*.module,*.php,*.php4,*.php5,*.phtml,application,branch-usage-checker}]
indent_size = 4
max_line_length = 110
tab_width = 4
[{*.har,*.jsb2,*.jsb3,*.json,.babelrc,.eslintrc,.prettierrc,.stylelintrc,bowerrc,composer.lock,jest.config}]
indent_size = 2
tab_width = 2
[{*.mk,GNUmakefile,makefile}]
tab_width = 4
[{*.tf,*.tfvars}]
tab_width = 4

1
.github/CODEOWNERS vendored Normal file
View File

@@ -0,0 +1 @@
* @ivuorinen

88
.github/labels.yml vendored Normal file
View File

@@ -0,0 +1,88 @@
---
- name: "breaking-change"
color: ee0701
description: "A breaking change for existing users."
- name: "bugfix"
color: ee0701
description: "Inconsistencies or issues which will cause a problem for users or implementors."
- name: "documentation"
color: 0052cc
description: "Solely about the documentation of the project."
- name: "enhancement"
color: 1d76db
description: "Enhancement of the code, not introducing new features."
- name: "refactor"
color: 1d76db
description: "Improvement of existing code, not introducing new features."
- name: "performance"
color: 1d76db
description: "Improving performance, not introducing new features."
- name: "new-feature"
color: 0e8a16
description: "New features or options."
- name: "maintenance"
color: 2af79e
description: "Generic maintenance tasks."
- name: "ci"
color: 1d76db
description: "Work that improves the continue integration."
- name: "dependencies"
color: 1d76db
description: "Upgrade or downgrade of project dependencies."
- name: "translations"
color: d4c5f9
description: "Impacts translations."
- name: "in-progress"
color: fbca04
description: "Issue is currently being resolved by a developer."
- name: "stale"
color: fef2c0
description: "There has not been activity on this issue or PR for quite some time."
- name: "no-stale"
color: fef2c0
description: "This issue or PR is exempted from the stable bot."
- name: "security"
color: ee0701
description: "Marks a security issue that needs to be resolved asap."
- name: "incomplete"
color: fef2c0
description: "Marks a PR or issue that is missing information."
- name: "invalid"
color: fef2c0
description: "Marks a PR or issue that is missing information."
- name: "beginner-friendly"
color: 0e8a16
description: "Good first issue for people wanting to contribute to the project."
- name: "help-wanted"
color: 0e8a16
description: "We need some extra helping hands or expertise in order to resolve this."
- name: "hacktoberfest"
description: "Issues/PRs are participating in the Hacktoberfest."
color: fbca04
- name: "hacktoberfest-accepted"
description: "Issues/PRs are participating in the Hacktoberfest."
color: fbca04
- name: "priority-critical"
color: ee0701
description: "This should be dealt with ASAP. Not fixing this issue would be a serious error."
- name: "priority-high"
color: b60205
description: "After critical issues are fixed, these should be dealt with before any further issues."
- name: "priority-medium"
color: 0e8a16
description: "This issue may be useful, and needs some attention."
- name: "priority-low"
color: e4ea8a
description: "Nice addition, maybe... someday..."
- name: "major"
color: b60205
description: "This PR causes a major version bump in the version number."
- name: "minor"
color: 0e8a16
description: "This PR causes a minor version bump in the version number."

View File

@@ -1,3 +1,4 @@
---
name: Run Composer Install
on:
@@ -14,7 +15,7 @@ jobs:
strategy:
matrix:
operating-system: ['ubuntu-latest']
php-versions: ['8.0', '8.1']
php-versions: ['8.0', '8.1', '8.2']
steps:
- uses: actions/checkout@v3

View File

@@ -1,3 +1,4 @@
---
# Compress images on demand (workflow_dispatch), and at 11pm every Sunday (schedule).
# Open a Pull Request if any images can be compressed.
name: Compress Images on Demand

View File

@@ -1,3 +1,4 @@
---
# Dependency Review Action
#
# This Action will scan dependency manifest files that change as part of a Pull Request,

55
.github/workflows/laravel-phpunit.yml vendored Normal file
View File

@@ -0,0 +1,55 @@
---
name: Laravel Setup and Composer test
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
laravel-tests:
runs-on: ubuntu-latest
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
- uses: actions/checkout@v3
- name: "Check file existence"
id: check_files
uses: andstor/file-existence-action@v2
with:
files: "package.json, artisan"
- name: Copy .env
if: steps.check_files.outputs.files_exists == 'true'
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
- name: Install Dependencies
if: steps.check_files.outputs.files_exists == 'true'
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Generate key
if: steps.check_files.outputs.files_exists == 'true'
run: php artisan key:generate
- name: Directory Permissions
if: steps.check_files.outputs.files_exists == 'true'
run: chmod -R 777 storage bootstrap/cache
- name: Create Database
if: steps.check_files.outputs.files_exists == 'true'
run: |
mkdir -p database
touch database/database.sqlite
- name: Execute composer test (Unit and Feature tests)
if: steps.check_files.outputs.files_exists == 'true'
env:
DB_CONNECTION: sqlite
DB_DATABASE: database/database.sqlite
run: composer test

View File

@@ -1,3 +1,4 @@
---
name: Compress Images
on:
pull_request:

16
.github/workflows/release-drafter.yml vendored Normal file
View File

@@ -0,0 +1,16 @@
---
name: Release Drafter
# yamllint disable-line rule:truthy
on:
workflow_call:
jobs:
update_release_draft:
name: ✏️ Draft release
runs-on: ubuntu-latest
steps:
- name: 🚀 Run Release Drafter
uses: release-drafter/release-drafter@v5.23.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

52
.github/workflows/reviewdog-linters.yml vendored Normal file
View File

@@ -0,0 +1,52 @@
---
name: Reviewdog Linters
on: [push]
jobs:
linters:
name: Linters
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: GitHub Actions
uses: reviewdog/action-actionlint@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
- name: detect-secrets
uses: reviewdog/action-detect-secrets@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
- name: markdownlint
uses: reviewdog/action-markdownlint@v0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
- name: shfmt
uses: reviewdog/action-shfmt@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
shfmt_flags: |
--find
--list
--write
--diff
--simplify
--language-dialect bash
--indent 2
--binary-next-line
--case-indent
--space-redirects
--func-next-line
- name: yamllint
uses: reviewdog/action-yamllint@v1
with:
github_token: ${{ secrets.github_token }}
reporter: github-pr-review

41
.github/workflows/stale.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
---
name: Stale
# yamllint disable-line rule:truthy
on:
schedule:
- cron: "0 8 * * *"
workflow_call:
workflow_dispatch:
jobs:
stale:
name: 🧹 Clean up stale issues and PRs
runs-on: ubuntu-latest
steps:
- name: 🚀 Run stale
uses: actions/stale@v8.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 30
days-before-close: 7
remove-stale-when-updated: true
stale-issue-label: "stale"
exempt-issue-labels: "no-stale,help-wanted"
stale-issue-message: >
There hasn't been any activity on this issue recently, so we
clean up some of the older and inactive issues.
Please make sure to update to the latest version and
check if that solves the issue. Let us know if that works for you
by leaving a comment 👍
This issue has now been marked as stale and will be closed if no
further activity occurs. Thanks!
stale-pr-label: "stale"
exempt-pr-labels: "no-stale"
stale-pr-message: >
There hasn't been any activity on this pull request recently. This
pull request has been automatically marked as stale because of that
and will be closed if no further activity occurs within 7 days.
Thank you for your contributions.

View File

@@ -0,0 +1,39 @@
---
name: Sync labels to other repositories
on:
push:
branches:
- main
paths:
- .github/labels.yml
jobs:
sync-labels:
runs-on: ubuntu-latest
outputs:
repos: ${{ steps.repos.outputs.REPOS }}
steps:
- uses: actions/checkout@v2
- name: Get Repositories
id: repos
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
REPOS="$(
gh repo list ivuorinen \
--no-archived \
--source \
--limit 15 \
--json nameWithOwner -q '.[] | .nameWithOwner' \
| sed 's|\"||'
)"
echo "REPOS='$REPOS'" >> $GITHUB_ENV
- uses: micnncim/action-label-syncer@v1
with:
prune: false
repository: ${{ needs.sync-labels.outputs.repos }}
token: ${{ secrets.PERSONAL_TOKEN }}

31
.github/workflows/sync-labels.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
---
name: Sync labels
# yamllint disable-line rule:truthy
on:
push:
branches:
- main
paths:
- .github/labels.yml
schedule:
- cron: "34 5 * * *"
workflow_call:
workflow_dispatch:
jobs:
labels:
name: ♻️ Sync labels
runs-on: ubuntu-latest
steps:
- name: ⤵️ Download latest labels definitions
run: |
curl -s --retry 5 \
"https://raw.githubusercontent.com/ivuorinen/.github/main/.github/labels.yml" \
> labels.yml
- name: 🚀 Run Label Syncer
uses: micnncim/action-label-syncer@v1.3.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
manifest: labels.yml

15
.yamllint.yml Normal file
View File

@@ -0,0 +1,15 @@
---
extends: default
ignore-from-file: .gitignore
yaml-files:
- '*.yaml'
- '*.yml'
- '.yamllint.yml'
rules:
line-length:
max: 120
level: warning
truthy: disable

View File

@@ -9,13 +9,13 @@ Actions should be linked using the `uses` keyword. Read more from the Reusing wo
```yml
jobs:
CompressImages:
uses: ivuorinen/.github/.github/workflows/compress-images.yml
uses: ivuorinen/.github/workflows/compress-images.yml
ReusableMatrixJobForComposerInstall:
strategy:
matrix:
target: ['8.0', '8.1']
uses: ivuorinen/.github/.github/workflows/composer-install.yml@main
target: ['8.0', '8.1', '8.2']
uses: ivuorinen/.github/workflows/composer-install.yml@main
with:
php-versions: ${{ matrix.target }}
```
@@ -24,7 +24,7 @@ jobs:
### Renovate config
Go through [the onboarding process](https://docs.renovatebot.com/getting-started/installing-onboarding/) and save the following snippet as `renovate.json` in the project root.
Go through [the onboarding process](https://docs.renovatebot.com/getting-started/installing-onboarding/) and save the following snippet as `.github/renovate.json`.
```json
{

View File

@@ -1,46 +1,53 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"description": "Renovate config for projects ivuorinen manages",
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"description": "Renovate config for projects ivuorinen manages",
"extends": [
"config:base",
":preserveSemverRanges",
":enableVulnerabilityAlerts",
":semanticCommits",
":labels(dependencies)",
":maintainLockFilesWeekly",
"schedule:nonOfficeHours",
"docker:disableMajor",
"npm:unpublishSafe",
"group:recommended",
"replacements:all",
"workarounds:all"
],
"dependencyDashboardLabels": [
"no-stale"
],
"lockFileMaintenance": {
"extends": [
"config:base",
":preserveSemverRanges",
":enableVulnerabilityAlerts",
":semanticCommits",
":labels(dependencies)",
":maintainLockFilesWeekly",
"schedule:nonOfficeHours",
"docker:disableMajor",
"npm:unpublishSafe",
"group:recommended",
"replacements:all",
"workarounds:all"
"group:all"
],
"lockFileMaintenance": {
"extends": [
"group:all"
],
"commitMessageAction": "Update"
"commitMessageAction": "Update"
},
"packageRules": [
{
"matchUpdateTypes": [
"patch"
],
"matchCurrentVersion": "!/^0/",
"groupName": "devDependencies (patch)",
"automerge": true
},
"packageRules": [
{
"matchUpdateTypes": ["patch"],
"matchCurrentVersion": "!/^0/",
"groupName": "devDependencies (patch)",
"automerge": true
},
{
"matchPackagePatterns": ["eslint"],
"groupName": "eslint"
}
],
"digest": {
"enabled": false
},
"separateMinorPatch": false,
"separateMajorMinor": true,
"separateMultipleMajor": true,
"vulnerabilityAlerts": {
"enabled": true
},
"commitBody": "Signed-off-by: {{{gitAuthor}}}"
{
"matchPackagePatterns": [
"eslint"
],
"groupName": "eslint"
}
],
"digest": {
"enabled": false
},
"separateMinorPatch": false,
"separateMajorMinor": true,
"separateMultipleMajor": true,
"vulnerabilityAlerts": {
"enabled": true
},
"commitBody": "Signed-off-by: {{{gitAuthor}}}"
}