Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 29 additions & 18 deletions .github/workflows/ci-docker.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,13 +19,20 @@
# GitHub runner.

name: CI Docker
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened
push:
branches: [master]
branches:
- master
workflow_dispatch:

concurrency:
Expand DownExpand Up@@ -97,10 +104,9 @@ jobs:
solution: ${{ steps.find_dotnet.outputs.solution }}

setup_release:
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
name: Setup Release
needs:
- check_dockerfiles
if: needs.check_dockerfiles.outputs.dockerfiles
needs: check_dockerfiles
outputs:
publish_release: ${{ steps.setup_release.outputs.publish_release }}
release_body: ${{ steps.setup_release.outputs.release_body }}
Expand All@@ -121,17 +127,18 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}

docker:
needs: [check_dockerfiles, setup_release]
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
runs-on: ubuntu-22.04
name: Docker${{ matrix.tag }}
if: needs.check_dockerfiles.outputs.dockerfiles
needs:
- check_dockerfiles
- setup_release
permissions:
packages: write
contents: write
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.check_dockerfiles.outputs.matrix) }}
name: Docker${{ matrix.tag }}

steps:
- name: Maximize build space
uses: easimon/maximize-build-space@v10
Expand DownExpand Up@@ -256,22 +263,22 @@ jobs:
Docker-buildx${{ matrix.tag }}-

- name: Log in to Docker Hub
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

- name: Log in to the Container registry
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ secrets.GH_BOT_NAME }}
password: ${{ secrets.GH_BOT_TOKEN }}

- name: Build artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
id: build_artifacts
uses: docker/build-push-action@v6
with:
Expand DownExpand Up@@ -314,7 +321,7 @@ jobs:
no-cache-filters: ${{ steps.prepare.outputs.no_cache_filters }}

- name: Arrange Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
working-directory: artifacts
run: |
# debug directory
Expand All@@ -336,14 +343,16 @@ jobs:
rm -f ./provenance.json

- name: Upload Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
uses: actions/upload-artifact@v4
with:
name: Docker${{ matrix.tag }}
path: artifacts/

- name: Create/Update GitHub Release
if: ${{ needs.setup_release.outputs.publish_release == 'true' && steps.prepare.outputs.artifacts == 'true' }}
if: >
needs.setup_release.outputs.publish_release == 'true' &&
steps.prepare.outputs.artifacts == 'true'
uses: LizardByte/create-release-action@v2025.102.13208
with:
allowUpdates: true
Expand All@@ -356,7 +365,9 @@ jobs:
token: ${{ secrets.GH_BOT_TOKEN }}

- name: Update Docker Hub Description
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
if: >
github.event_name == 'push' &&
github.ref == 'refs/heads/master'
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/cla-gist-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# required for CLA Assistant.

name: CLA gist replicator
permissions:
contents: read

on:
push:
branches: [master]
branches:
- master
paths:
- "cla/**"
workflow_dispatch:
Expand All@@ -15,7 +18,6 @@ jobs:
replicate_cla:
name: Replicate CLA
runs-on: ubuntu-latest

strategy: # the action doesn't currently support multiple files
fail-fast: true # false to run all, true to fail entire job if any fail
max-parallel: 1 # let's update files one by one to avoid complications
Expand All@@ -24,7 +26,6 @@ jobs:
- file_path: 'cla/CLA'
- file_path: 'cla/CLA-entity'
- file_path: 'cla/metadata'

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
42 changes: 31 additions & 11 deletions .github/workflows/codeql.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,16 @@
# This workflow will analyze all supported languages in the repository using CodeQL Analysis.

name: "CodeQL"
permissions:
contents: read

on:
push:
branches: ["master"]
branches:
- master
pull_request:
branches: ["master"]
branches:
- master
schedule:
- cron: '00 12 * * 0' # every Sunday at 12:00 UTC

Expand All@@ -22,14 +26,17 @@ concurrency:
jobs:
languages:
name: Get language matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.lang.outputs.result }}
continue: ${{ steps.continue.outputs.result }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Get repo languages
uses: actions/github-script@v7
id: lang
uses: actions/github-script@v7
with:
script: |
// CodeQL supports ['cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift']
Expand All@@ -54,6 +61,21 @@ jobs:
// Track languages we've already added to avoid duplicates
const addedLanguages = new Set()

// Check if workflow files exist to determine if we should add actions language
const fs = require('fs');
const hasYmlFiles = fs.existsSync('.github/workflows') &&
fs.readdirSync('.github/workflows').some(file => file.endsWith('.yml') || file.endsWith('.yaml'));

// Add actions language if workflow files exist
if (hasYmlFiles) {
console.log('Found GitHub Actions workflow files. Adding actions to the matrix.');
matrix['include'].push({
"language": "actions",
"os": "ubuntu-latest",
"name": "actions"
});
}

for (let [key, value] of Object.entries(response.data)) {
// remap language
if (remap_languages[key.toLowerCase()]) {
Expand DownExpand Up@@ -94,8 +116,8 @@ jobs:
return matrix

- name: Continue
uses: actions/github-script@v7
id: continue
uses: actions/github-script@v7
with:
script: |
// if matrix['include'] is an empty list return false, otherwise true
Expand All@@ -109,24 +131,22 @@ jobs:

analyze:
name: Analyze (${{ matrix.name }})
if: ${{ needs.languages.outputs.continue == 'true' }}
if: needs.languages.outputs.continue == 'true'
defaults:
run:
shell: ${{ matrix.os == 'windows-latest' && 'msys2 {0}' || 'bash' }}
env:
GITHUB_CODEQL_BUILD: true
needs: [languages]
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
needs: languages
permissions:
actions: read
contents: read
security-events: write

runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.languages.outputs.matrix) }}

timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
steps:
- name: Maximize build space
if: >-
Expand Down
13 changes: 9 additions & 4 deletions .github/workflows/common-lint.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,11 +6,17 @@
# Common linting.

name: common lint
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
Expand DownExpand Up@@ -263,5 +269,4 @@ jobs:

- name: YAML - log
if: always() && steps.yamllint.outcome == 'failure'
run: |
cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
run: cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
9 changes: 5 additions & 4 deletions .github/workflows/global-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# repos.

name: Global replicator
permissions:
contents: read

on:
push:
branches: [master] # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
branches:
- master # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
workflow_dispatch:
inputs:
repo_name:
Expand All@@ -18,18 +21,16 @@ on:

jobs:
replicate:
runs-on: ubuntu-latest
name: Replicate files
env:
BOT_BRANCH_NAME: 'bot/update-files-from-global-repo'
COMMIT_MESSAGE: 'chore: update global workflows'
REPOS_TO_IGNORE: >-
homebrew-core,
winget-pkgs,
Virtual-Gamepad-Emulation-Bus,
Virtual-Gamepad-Emulation-Client,
Virtual-Gamepad-Emulation-dotnet

runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/issues-stale.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,7 @@
# Manage stale issues and PRs.

name: Stale Issues / PRs
permissions: {}

on:
schedule:
Expand All@@ -14,6 +15,7 @@ on:

jobs:
setup-matrix:
name: Setup Matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.result }}
Expand All@@ -35,8 +37,8 @@ jobs:
return matrix

test-matrix:
if: github.event_name == 'workflow_dispatch'
name: Test Matrix - ${{ matrix.repo }}
if: github.event_name == 'workflow_dispatch'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand All@@ -47,8 +49,8 @@ jobs:
run: echo ${{ matrix.repo }}

stale:
if: github.event_name == 'schedule'
name: Check Stale Issues / PRs
if: github.event_name == 'schedule'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/issues.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,17 @@
# Label and un-label actions using `../label-actions.yml`.

name: Issues
permissions: {}

on:
issues:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled
discussion:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled

jobs:
label:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/patch_missing_releases.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,14 +5,15 @@
# It was discovered that the releases will re-appear if they are manually "edited".

name: Patch Missing Releases
permissions: {}

on:
workflow_dispatch:

jobs:
patch_missing_releases:
name: Patch Missing Releases
runs-on: ubuntu-latest

steps:
- name: Patch
uses: actions/github-script@v7
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
ci(codeql): enable for github actions by ReenigneArcher · Pull Request #448 · LizardByte/.github · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 29 additions & 18 deletions .github/workflows/ci-docker.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,13 +19,20 @@
# GitHub runner.

name: CI Docker
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened
push:
branches: [master]
branches:
- master
workflow_dispatch:

concurrency:
Expand DownExpand Up@@ -97,10 +104,9 @@ jobs:
solution: ${{ steps.find_dotnet.outputs.solution }}

setup_release:
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
name: Setup Release
needs:
- check_dockerfiles
if: needs.check_dockerfiles.outputs.dockerfiles
needs: check_dockerfiles
outputs:
publish_release: ${{ steps.setup_release.outputs.publish_release }}
release_body: ${{ steps.setup_release.outputs.release_body }}
Expand All@@ -121,17 +127,18 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}

docker:
needs: [check_dockerfiles, setup_release]
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
runs-on: ubuntu-22.04
name: Docker${{ matrix.tag }}
if: needs.check_dockerfiles.outputs.dockerfiles
needs:
- check_dockerfiles
- setup_release
permissions:
packages: write
contents: write
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.check_dockerfiles.outputs.matrix) }}
name: Docker${{ matrix.tag }}

steps:
- name: Maximize build space
uses: easimon/maximize-build-space@v10
Expand DownExpand Up@@ -256,22 +263,22 @@ jobs:
Docker-buildx${{ matrix.tag }}-

- name: Log in to Docker Hub
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

- name: Log in to the Container registry
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ secrets.GH_BOT_NAME }}
password: ${{ secrets.GH_BOT_TOKEN }}

- name: Build artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
id: build_artifacts
uses: docker/build-push-action@v6
with:
Expand DownExpand Up@@ -314,7 +321,7 @@ jobs:
no-cache-filters: ${{ steps.prepare.outputs.no_cache_filters }}

- name: Arrange Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
working-directory: artifacts
run: |
# debug directory
Expand All@@ -336,14 +343,16 @@ jobs:
rm -f ./provenance.json

- name: Upload Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
uses: actions/upload-artifact@v4
with:
name: Docker${{ matrix.tag }}
path: artifacts/

- name: Create/Update GitHub Release
if: ${{ needs.setup_release.outputs.publish_release == 'true' && steps.prepare.outputs.artifacts == 'true' }}
if: >
needs.setup_release.outputs.publish_release == 'true' &&
steps.prepare.outputs.artifacts == 'true'
uses: LizardByte/create-release-action@v2025.102.13208
with:
allowUpdates: true
Expand All@@ -356,7 +365,9 @@ jobs:
token: ${{ secrets.GH_BOT_TOKEN }}

- name: Update Docker Hub Description
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
if: >
github.event_name == 'push' &&
github.ref == 'refs/heads/master'
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/cla-gist-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# required for CLA Assistant.

name: CLA gist replicator
permissions:
contents: read

on:
push:
branches: [master]
branches:
- master
paths:
- "cla/**"
workflow_dispatch:
Expand All@@ -15,7 +18,6 @@ jobs:
replicate_cla:
name: Replicate CLA
runs-on: ubuntu-latest

strategy: # the action doesn't currently support multiple files
fail-fast: true # false to run all, true to fail entire job if any fail
max-parallel: 1 # let's update files one by one to avoid complications
Expand All@@ -24,7 +26,6 @@ jobs:
- file_path: 'cla/CLA'
- file_path: 'cla/CLA-entity'
- file_path: 'cla/metadata'

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
42 changes: 31 additions & 11 deletions .github/workflows/codeql.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,16 @@
# This workflow will analyze all supported languages in the repository using CodeQL Analysis.

name: "CodeQL"
permissions:
contents: read

on:
push:
branches: ["master"]
branches:
- master
pull_request:
branches: ["master"]
branches:
- master
schedule:
- cron: '00 12 * * 0' # every Sunday at 12:00 UTC

Expand All@@ -22,14 +26,17 @@ concurrency:
jobs:
languages:
name: Get language matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.lang.outputs.result }}
continue: ${{ steps.continue.outputs.result }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Get repo languages
uses: actions/github-script@v7
id: lang
uses: actions/github-script@v7
with:
script: |
// CodeQL supports ['cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift']
Expand All@@ -54,6 +61,21 @@ jobs:
// Track languages we've already added to avoid duplicates
const addedLanguages = new Set()

// Check if workflow files exist to determine if we should add actions language
const fs = require('fs');
const hasYmlFiles = fs.existsSync('.github/workflows') &&
fs.readdirSync('.github/workflows').some(file => file.endsWith('.yml') || file.endsWith('.yaml'));

// Add actions language if workflow files exist
if (hasYmlFiles) {
console.log('Found GitHub Actions workflow files. Adding actions to the matrix.');
matrix['include'].push({
"language": "actions",
"os": "ubuntu-latest",
"name": "actions"
});
}

for (let [key, value] of Object.entries(response.data)) {
// remap language
if (remap_languages[key.toLowerCase()]) {
Expand DownExpand Up@@ -94,8 +116,8 @@ jobs:
return matrix

- name: Continue
uses: actions/github-script@v7
id: continue
uses: actions/github-script@v7
with:
script: |
// if matrix['include'] is an empty list return false, otherwise true
Expand All@@ -109,24 +131,22 @@ jobs:

analyze:
name: Analyze (${{ matrix.name }})
if: ${{ needs.languages.outputs.continue == 'true' }}
if: needs.languages.outputs.continue == 'true'
defaults:
run:
shell: ${{ matrix.os == 'windows-latest' && 'msys2 {0}' || 'bash' }}
env:
GITHUB_CODEQL_BUILD: true
needs: [languages]
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
needs: languages
permissions:
actions: read
contents: read
security-events: write

runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.languages.outputs.matrix) }}

timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
steps:
- name: Maximize build space
if: >-
Expand Down
13 changes: 9 additions & 4 deletions .github/workflows/common-lint.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,11 +6,17 @@
# Common linting.

name: common lint
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
Expand DownExpand Up@@ -263,5 +269,4 @@ jobs:

- name: YAML - log
if: always() && steps.yamllint.outcome == 'failure'
run: |
cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
run: cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
9 changes: 5 additions & 4 deletions .github/workflows/global-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# repos.

name: Global replicator
permissions:
contents: read

on:
push:
branches: [master] # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
branches:
- master # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
workflow_dispatch:
inputs:
repo_name:
Expand All@@ -18,18 +21,16 @@ on:

jobs:
replicate:
runs-on: ubuntu-latest
name: Replicate files
env:
BOT_BRANCH_NAME: 'bot/update-files-from-global-repo'
COMMIT_MESSAGE: 'chore: update global workflows'
REPOS_TO_IGNORE: >-
homebrew-core,
winget-pkgs,
Virtual-Gamepad-Emulation-Bus,
Virtual-Gamepad-Emulation-Client,
Virtual-Gamepad-Emulation-dotnet

runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/issues-stale.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,7 @@
# Manage stale issues and PRs.

name: Stale Issues / PRs
permissions: {}

on:
schedule:
Expand All@@ -14,6 +15,7 @@ on:

jobs:
setup-matrix:
name: Setup Matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.result }}
Expand All@@ -35,8 +37,8 @@ jobs:
return matrix

test-matrix:
if: github.event_name == 'workflow_dispatch'
name: Test Matrix - ${{ matrix.repo }}
if: github.event_name == 'workflow_dispatch'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand All@@ -47,8 +49,8 @@ jobs:
run: echo ${{ matrix.repo }}

stale:
if: github.event_name == 'schedule'
name: Check Stale Issues / PRs
if: github.event_name == 'schedule'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/issues.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,17 @@
# Label and un-label actions using `../label-actions.yml`.

name: Issues
permissions: {}

on:
issues:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled
discussion:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled

jobs:
label:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/patch_missing_releases.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,14 +5,15 @@
# It was discovered that the releases will re-appear if they are manually "edited".

name: Patch Missing Releases
permissions: {}

on:
workflow_dispatch:

jobs:
patch_missing_releases:
name: Patch Missing Releases
runs-on: ubuntu-latest

steps:
- name: Patch
uses: actions/github-script@v7
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' ci(codeql): enable for github actions by ReenigneArcher · Pull Request #448 · LizardByte/.github · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 29 additions & 18 deletions .github/workflows/ci-docker.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,13 +19,20 @@
# GitHub runner.

name: CI Docker
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened
push:
branches: [master]
branches:
- master
workflow_dispatch:

concurrency:
Expand DownExpand Up@@ -97,10 +104,9 @@ jobs:
solution: ${{ steps.find_dotnet.outputs.solution }}

setup_release:
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
name: Setup Release
needs:
- check_dockerfiles
if: needs.check_dockerfiles.outputs.dockerfiles
needs: check_dockerfiles
outputs:
publish_release: ${{ steps.setup_release.outputs.publish_release }}
release_body: ${{ steps.setup_release.outputs.release_body }}
Expand All@@ -121,17 +127,18 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}

docker:
needs: [check_dockerfiles, setup_release]
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
runs-on: ubuntu-22.04
name: Docker${{ matrix.tag }}
if: needs.check_dockerfiles.outputs.dockerfiles
needs:
- check_dockerfiles
- setup_release
permissions:
packages: write
contents: write
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.check_dockerfiles.outputs.matrix) }}
name: Docker${{ matrix.tag }}

steps:
- name: Maximize build space
uses: easimon/maximize-build-space@v10
Expand DownExpand Up@@ -256,22 +263,22 @@ jobs:
Docker-buildx${{ matrix.tag }}-

- name: Log in to Docker Hub
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

- name: Log in to the Container registry
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ secrets.GH_BOT_NAME }}
password: ${{ secrets.GH_BOT_TOKEN }}

- name: Build artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
id: build_artifacts
uses: docker/build-push-action@v6
with:
Expand DownExpand Up@@ -314,7 +321,7 @@ jobs:
no-cache-filters: ${{ steps.prepare.outputs.no_cache_filters }}

- name: Arrange Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
working-directory: artifacts
run: |
# debug directory
Expand All@@ -336,14 +343,16 @@ jobs:
rm -f ./provenance.json

- name: Upload Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
uses: actions/upload-artifact@v4
with:
name: Docker${{ matrix.tag }}
path: artifacts/

- name: Create/Update GitHub Release
if: ${{ needs.setup_release.outputs.publish_release == 'true' && steps.prepare.outputs.artifacts == 'true' }}
if: >
needs.setup_release.outputs.publish_release == 'true' &&
steps.prepare.outputs.artifacts == 'true'
uses: LizardByte/create-release-action@v2025.102.13208
with:
allowUpdates: true
Expand All@@ -356,7 +365,9 @@ jobs:
token: ${{ secrets.GH_BOT_TOKEN }}

- name: Update Docker Hub Description
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
if: >
github.event_name == 'push' &&
github.ref == 'refs/heads/master'
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/cla-gist-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# required for CLA Assistant.

name: CLA gist replicator
permissions:
contents: read

on:
push:
branches: [master]
branches:
- master
paths:
- "cla/**"
workflow_dispatch:
Expand All@@ -15,7 +18,6 @@ jobs:
replicate_cla:
name: Replicate CLA
runs-on: ubuntu-latest

strategy: # the action doesn't currently support multiple files
fail-fast: true # false to run all, true to fail entire job if any fail
max-parallel: 1 # let's update files one by one to avoid complications
Expand All@@ -24,7 +26,6 @@ jobs:
- file_path: 'cla/CLA'
- file_path: 'cla/CLA-entity'
- file_path: 'cla/metadata'

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
42 changes: 31 additions & 11 deletions .github/workflows/codeql.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,16 @@
# This workflow will analyze all supported languages in the repository using CodeQL Analysis.

name: "CodeQL"
permissions:
contents: read

on:
push:
branches: ["master"]
branches:
- master
pull_request:
branches: ["master"]
branches:
- master
schedule:
- cron: '00 12 * * 0' # every Sunday at 12:00 UTC

Expand All@@ -22,14 +26,17 @@ concurrency:
jobs:
languages:
name: Get language matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.lang.outputs.result }}
continue: ${{ steps.continue.outputs.result }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Get repo languages
uses: actions/github-script@v7
id: lang
uses: actions/github-script@v7
with:
script: |
// CodeQL supports ['cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift']
Expand All@@ -54,6 +61,21 @@ jobs:
// Track languages we've already added to avoid duplicates
const addedLanguages = new Set()

// Check if workflow files exist to determine if we should add actions language
const fs = require('fs');
const hasYmlFiles = fs.existsSync('.github/workflows') &&
fs.readdirSync('.github/workflows').some(file => file.endsWith('.yml') || file.endsWith('.yaml'));

// Add actions language if workflow files exist
if (hasYmlFiles) {
console.log('Found GitHub Actions workflow files. Adding actions to the matrix.');
matrix['include'].push({
"language": "actions",
"os": "ubuntu-latest",
"name": "actions"
});
}

for (let [key, value] of Object.entries(response.data)) {
// remap language
if (remap_languages[key.toLowerCase()]) {
Expand DownExpand Up@@ -94,8 +116,8 @@ jobs:
return matrix

- name: Continue
uses: actions/github-script@v7
id: continue
uses: actions/github-script@v7
with:
script: |
// if matrix['include'] is an empty list return false, otherwise true
Expand All@@ -109,24 +131,22 @@ jobs:

analyze:
name: Analyze (${{ matrix.name }})
if: ${{ needs.languages.outputs.continue == 'true' }}
if: needs.languages.outputs.continue == 'true'
defaults:
run:
shell: ${{ matrix.os == 'windows-latest' && 'msys2 {0}' || 'bash' }}
env:
GITHUB_CODEQL_BUILD: true
needs: [languages]
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
needs: languages
permissions:
actions: read
contents: read
security-events: write

runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.languages.outputs.matrix) }}

timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
steps:
- name: Maximize build space
if: >-
Expand Down
13 changes: 9 additions & 4 deletions .github/workflows/common-lint.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,11 +6,17 @@
# Common linting.

name: common lint
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
Expand DownExpand Up@@ -263,5 +269,4 @@ jobs:

- name: YAML - log
if: always() && steps.yamllint.outcome == 'failure'
run: |
cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
run: cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
9 changes: 5 additions & 4 deletions .github/workflows/global-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# repos.

name: Global replicator
permissions:
contents: read

on:
push:
branches: [master] # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
branches:
- master # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
workflow_dispatch:
inputs:
repo_name:
Expand All@@ -18,18 +21,16 @@ on:

jobs:
replicate:
runs-on: ubuntu-latest
name: Replicate files
env:
BOT_BRANCH_NAME: 'bot/update-files-from-global-repo'
COMMIT_MESSAGE: 'chore: update global workflows'
REPOS_TO_IGNORE: >-
homebrew-core,
winget-pkgs,
Virtual-Gamepad-Emulation-Bus,
Virtual-Gamepad-Emulation-Client,
Virtual-Gamepad-Emulation-dotnet

runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/issues-stale.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,7 @@
# Manage stale issues and PRs.

name: Stale Issues / PRs
permissions: {}

on:
schedule:
Expand All@@ -14,6 +15,7 @@ on:

jobs:
setup-matrix:
name: Setup Matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.result }}
Expand All@@ -35,8 +37,8 @@ jobs:
return matrix

test-matrix:
if: github.event_name == 'workflow_dispatch'
name: Test Matrix - ${{ matrix.repo }}
if: github.event_name == 'workflow_dispatch'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand All@@ -47,8 +49,8 @@ jobs:
run: echo ${{ matrix.repo }}

stale:
if: github.event_name == 'schedule'
name: Check Stale Issues / PRs
if: github.event_name == 'schedule'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/issues.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,17 @@
# Label and un-label actions using `../label-actions.yml`.

name: Issues
permissions: {}

on:
issues:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled
discussion:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled

jobs:
label:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/patch_missing_releases.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,14 +5,15 @@
# It was discovered that the releases will re-appear if they are manually "edited".

name: Patch Missing Releases
permissions: {}

on:
workflow_dispatch:

jobs:
patch_missing_releases:
name: Patch Missing Releases
runs-on: ubuntu-latest

steps:
- name: Patch
uses: actions/github-script@v7
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' ci(codeql): enable for github actions by ReenigneArcher · Pull Request #448 · LizardByte/.github · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 29 additions & 18 deletions .github/workflows/ci-docker.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,13 +19,20 @@
# GitHub runner.

name: CI Docker
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened
push:
branches: [master]
branches:
- master
workflow_dispatch:

concurrency:
Expand DownExpand Up@@ -97,10 +104,9 @@ jobs:
solution: ${{ steps.find_dotnet.outputs.solution }}

setup_release:
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
name: Setup Release
needs:
- check_dockerfiles
if: needs.check_dockerfiles.outputs.dockerfiles
needs: check_dockerfiles
outputs:
publish_release: ${{ steps.setup_release.outputs.publish_release }}
release_body: ${{ steps.setup_release.outputs.release_body }}
Expand All@@ -121,17 +127,18 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}

docker:
needs: [check_dockerfiles, setup_release]
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
runs-on: ubuntu-22.04
name: Docker${{ matrix.tag }}
if: needs.check_dockerfiles.outputs.dockerfiles
needs:
- check_dockerfiles
- setup_release
permissions:
packages: write
contents: write
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.check_dockerfiles.outputs.matrix) }}
name: Docker${{ matrix.tag }}

steps:
- name: Maximize build space
uses: easimon/maximize-build-space@v10
Expand DownExpand Up@@ -256,22 +263,22 @@ jobs:
Docker-buildx${{ matrix.tag }}-

- name: Log in to Docker Hub
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

- name: Log in to the Container registry
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ secrets.GH_BOT_NAME }}
password: ${{ secrets.GH_BOT_TOKEN }}

- name: Build artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
id: build_artifacts
uses: docker/build-push-action@v6
with:
Expand DownExpand Up@@ -314,7 +321,7 @@ jobs:
no-cache-filters: ${{ steps.prepare.outputs.no_cache_filters }}

- name: Arrange Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
working-directory: artifacts
run: |
# debug directory
Expand All@@ -336,14 +343,16 @@ jobs:
rm -f ./provenance.json

- name: Upload Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
uses: actions/upload-artifact@v4
with:
name: Docker${{ matrix.tag }}
path: artifacts/

- name: Create/Update GitHub Release
if: ${{ needs.setup_release.outputs.publish_release == 'true' && steps.prepare.outputs.artifacts == 'true' }}
if: >
needs.setup_release.outputs.publish_release == 'true' &&
steps.prepare.outputs.artifacts == 'true'
uses: LizardByte/create-release-action@v2025.102.13208
with:
allowUpdates: true
Expand All@@ -356,7 +365,9 @@ jobs:
token: ${{ secrets.GH_BOT_TOKEN }}

- name: Update Docker Hub Description
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
if: >
github.event_name == 'push' &&
github.ref == 'refs/heads/master'
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/cla-gist-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# required for CLA Assistant.

name: CLA gist replicator
permissions:
contents: read

on:
push:
branches: [master]
branches:
- master
paths:
- "cla/**"
workflow_dispatch:
Expand All@@ -15,7 +18,6 @@ jobs:
replicate_cla:
name: Replicate CLA
runs-on: ubuntu-latest

strategy: # the action doesn't currently support multiple files
fail-fast: true # false to run all, true to fail entire job if any fail
max-parallel: 1 # let's update files one by one to avoid complications
Expand All@@ -24,7 +26,6 @@ jobs:
- file_path: 'cla/CLA'
- file_path: 'cla/CLA-entity'
- file_path: 'cla/metadata'

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
42 changes: 31 additions & 11 deletions .github/workflows/codeql.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,16 @@
# This workflow will analyze all supported languages in the repository using CodeQL Analysis.

name: "CodeQL"
permissions:
contents: read

on:
push:
branches: ["master"]
branches:
- master
pull_request:
branches: ["master"]
branches:
- master
schedule:
- cron: '00 12 * * 0' # every Sunday at 12:00 UTC

Expand All@@ -22,14 +26,17 @@ concurrency:
jobs:
languages:
name: Get language matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.lang.outputs.result }}
continue: ${{ steps.continue.outputs.result }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Get repo languages
uses: actions/github-script@v7
id: lang
uses: actions/github-script@v7
with:
script: |
// CodeQL supports ['cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift']
Expand All@@ -54,6 +61,21 @@ jobs:
// Track languages we've already added to avoid duplicates
const addedLanguages = new Set()

// Check if workflow files exist to determine if we should add actions language
const fs = require('fs');
const hasYmlFiles = fs.existsSync('.github/workflows') &&
fs.readdirSync('.github/workflows').some(file => file.endsWith('.yml') || file.endsWith('.yaml'));

// Add actions language if workflow files exist
if (hasYmlFiles) {
console.log('Found GitHub Actions workflow files. Adding actions to the matrix.');
matrix['include'].push({
"language": "actions",
"os": "ubuntu-latest",
"name": "actions"
});
}

for (let [key, value] of Object.entries(response.data)) {
// remap language
if (remap_languages[key.toLowerCase()]) {
Expand DownExpand Up@@ -94,8 +116,8 @@ jobs:
return matrix

- name: Continue
uses: actions/github-script@v7
id: continue
uses: actions/github-script@v7
with:
script: |
// if matrix['include'] is an empty list return false, otherwise true
Expand All@@ -109,24 +131,22 @@ jobs:

analyze:
name: Analyze (${{ matrix.name }})
if: ${{ needs.languages.outputs.continue == 'true' }}
if: needs.languages.outputs.continue == 'true'
defaults:
run:
shell: ${{ matrix.os == 'windows-latest' && 'msys2 {0}' || 'bash' }}
env:
GITHUB_CODEQL_BUILD: true
needs: [languages]
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
needs: languages
permissions:
actions: read
contents: read
security-events: write

runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.languages.outputs.matrix) }}

timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
steps:
- name: Maximize build space
if: >-
Expand Down
13 changes: 9 additions & 4 deletions .github/workflows/common-lint.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,11 +6,17 @@
# Common linting.

name: common lint
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
Expand DownExpand Up@@ -263,5 +269,4 @@ jobs:

- name: YAML - log
if: always() && steps.yamllint.outcome == 'failure'
run: |
cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
run: cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
9 changes: 5 additions & 4 deletions .github/workflows/global-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# repos.

name: Global replicator
permissions:
contents: read

on:
push:
branches: [master] # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
branches:
- master # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
workflow_dispatch:
inputs:
repo_name:
Expand All@@ -18,18 +21,16 @@ on:

jobs:
replicate:
runs-on: ubuntu-latest
name: Replicate files
env:
BOT_BRANCH_NAME: 'bot/update-files-from-global-repo'
COMMIT_MESSAGE: 'chore: update global workflows'
REPOS_TO_IGNORE: >-
homebrew-core,
winget-pkgs,
Virtual-Gamepad-Emulation-Bus,
Virtual-Gamepad-Emulation-Client,
Virtual-Gamepad-Emulation-dotnet

runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/issues-stale.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,7 @@
# Manage stale issues and PRs.

name: Stale Issues / PRs
permissions: {}

on:
schedule:
Expand All@@ -14,6 +15,7 @@ on:

jobs:
setup-matrix:
name: Setup Matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.result }}
Expand All@@ -35,8 +37,8 @@ jobs:
return matrix

test-matrix:
if: github.event_name == 'workflow_dispatch'
name: Test Matrix - ${{ matrix.repo }}
if: github.event_name == 'workflow_dispatch'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand All@@ -47,8 +49,8 @@ jobs:
run: echo ${{ matrix.repo }}

stale:
if: github.event_name == 'schedule'
name: Check Stale Issues / PRs
if: github.event_name == 'schedule'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/issues.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,17 @@
# Label and un-label actions using `../label-actions.yml`.

name: Issues
permissions: {}

on:
issues:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled
discussion:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled

jobs:
label:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/patch_missing_releases.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,14 +5,15 @@
# It was discovered that the releases will re-appear if they are manually "edited".

name: Patch Missing Releases
permissions: {}

on:
workflow_dispatch:

jobs:
patch_missing_releases:
name: Patch Missing Releases
runs-on: ubuntu-latest

steps:
- name: Patch
uses: actions/github-script@v7
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' ci(codeql): enable for github actions by ReenigneArcher · Pull Request #448 · LizardByte/.github · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 29 additions & 18 deletions .github/workflows/ci-docker.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,13 +19,20 @@
# GitHub runner.

name: CI Docker
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened
push:
branches: [master]
branches:
- master
workflow_dispatch:

concurrency:
Expand DownExpand Up@@ -97,10 +104,9 @@ jobs:
solution: ${{ steps.find_dotnet.outputs.solution }}

setup_release:
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
name: Setup Release
needs:
- check_dockerfiles
if: needs.check_dockerfiles.outputs.dockerfiles
needs: check_dockerfiles
outputs:
publish_release: ${{ steps.setup_release.outputs.publish_release }}
release_body: ${{ steps.setup_release.outputs.release_body }}
Expand All@@ -121,17 +127,18 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}

docker:
needs: [check_dockerfiles, setup_release]
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
runs-on: ubuntu-22.04
name: Docker${{ matrix.tag }}
if: needs.check_dockerfiles.outputs.dockerfiles
needs:
- check_dockerfiles
- setup_release
permissions:
packages: write
contents: write
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.check_dockerfiles.outputs.matrix) }}
name: Docker${{ matrix.tag }}

steps:
- name: Maximize build space
uses: easimon/maximize-build-space@v10
Expand DownExpand Up@@ -256,22 +263,22 @@ jobs:
Docker-buildx${{ matrix.tag }}-

- name: Log in to Docker Hub
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

- name: Log in to the Container registry
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ secrets.GH_BOT_NAME }}
password: ${{ secrets.GH_BOT_TOKEN }}

- name: Build artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
id: build_artifacts
uses: docker/build-push-action@v6
with:
Expand DownExpand Up@@ -314,7 +321,7 @@ jobs:
no-cache-filters: ${{ steps.prepare.outputs.no_cache_filters }}

- name: Arrange Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
working-directory: artifacts
run: |
# debug directory
Expand All@@ -336,14 +343,16 @@ jobs:
rm -f ./provenance.json

- name: Upload Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
uses: actions/upload-artifact@v4
with:
name: Docker${{ matrix.tag }}
path: artifacts/

- name: Create/Update GitHub Release
if: ${{ needs.setup_release.outputs.publish_release == 'true' && steps.prepare.outputs.artifacts == 'true' }}
if: >
needs.setup_release.outputs.publish_release == 'true' &&
steps.prepare.outputs.artifacts == 'true'
uses: LizardByte/create-release-action@v2025.102.13208
with:
allowUpdates: true
Expand All@@ -356,7 +365,9 @@ jobs:
token: ${{ secrets.GH_BOT_TOKEN }}

- name: Update Docker Hub Description
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
if: >
github.event_name == 'push' &&
github.ref == 'refs/heads/master'
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/cla-gist-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# required for CLA Assistant.

name: CLA gist replicator
permissions:
contents: read

on:
push:
branches: [master]
branches:
- master
paths:
- "cla/**"
workflow_dispatch:
Expand All@@ -15,7 +18,6 @@ jobs:
replicate_cla:
name: Replicate CLA
runs-on: ubuntu-latest

strategy: # the action doesn't currently support multiple files
fail-fast: true # false to run all, true to fail entire job if any fail
max-parallel: 1 # let's update files one by one to avoid complications
Expand All@@ -24,7 +26,6 @@ jobs:
- file_path: 'cla/CLA'
- file_path: 'cla/CLA-entity'
- file_path: 'cla/metadata'

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
42 changes: 31 additions & 11 deletions .github/workflows/codeql.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,16 @@
# This workflow will analyze all supported languages in the repository using CodeQL Analysis.

name: "CodeQL"
permissions:
contents: read

on:
push:
branches: ["master"]
branches:
- master
pull_request:
branches: ["master"]
branches:
- master
schedule:
- cron: '00 12 * * 0' # every Sunday at 12:00 UTC

Expand All@@ -22,14 +26,17 @@ concurrency:
jobs:
languages:
name: Get language matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.lang.outputs.result }}
continue: ${{ steps.continue.outputs.result }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Get repo languages
uses: actions/github-script@v7
id: lang
uses: actions/github-script@v7
with:
script: |
// CodeQL supports ['cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift']
Expand All@@ -54,6 +61,21 @@ jobs:
// Track languages we've already added to avoid duplicates
const addedLanguages = new Set()

// Check if workflow files exist to determine if we should add actions language
const fs = require('fs');
const hasYmlFiles = fs.existsSync('.github/workflows') &&
fs.readdirSync('.github/workflows').some(file => file.endsWith('.yml') || file.endsWith('.yaml'));

// Add actions language if workflow files exist
if (hasYmlFiles) {
console.log('Found GitHub Actions workflow files. Adding actions to the matrix.');
matrix['include'].push({
"language": "actions",
"os": "ubuntu-latest",
"name": "actions"
});
}

for (let [key, value] of Object.entries(response.data)) {
// remap language
if (remap_languages[key.toLowerCase()]) {
Expand DownExpand Up@@ -94,8 +116,8 @@ jobs:
return matrix

- name: Continue
uses: actions/github-script@v7
id: continue
uses: actions/github-script@v7
with:
script: |
// if matrix['include'] is an empty list return false, otherwise true
Expand All@@ -109,24 +131,22 @@ jobs:

analyze:
name: Analyze (${{ matrix.name }})
if: ${{ needs.languages.outputs.continue == 'true' }}
if: needs.languages.outputs.continue == 'true'
defaults:
run:
shell: ${{ matrix.os == 'windows-latest' && 'msys2 {0}' || 'bash' }}
env:
GITHUB_CODEQL_BUILD: true
needs: [languages]
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
needs: languages
permissions:
actions: read
contents: read
security-events: write

runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.languages.outputs.matrix) }}

timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
steps:
- name: Maximize build space
if: >-
Expand Down
13 changes: 9 additions & 4 deletions .github/workflows/common-lint.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,11 +6,17 @@
# Common linting.

name: common lint
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
Expand DownExpand Up@@ -263,5 +269,4 @@ jobs:

- name: YAML - log
if: always() && steps.yamllint.outcome == 'failure'
run: |
cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
run: cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
9 changes: 5 additions & 4 deletions .github/workflows/global-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# repos.

name: Global replicator
permissions:
contents: read

on:
push:
branches: [master] # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
branches:
- master # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
workflow_dispatch:
inputs:
repo_name:
Expand All@@ -18,18 +21,16 @@ on:

jobs:
replicate:
runs-on: ubuntu-latest
name: Replicate files
env:
BOT_BRANCH_NAME: 'bot/update-files-from-global-repo'
COMMIT_MESSAGE: 'chore: update global workflows'
REPOS_TO_IGNORE: >-
homebrew-core,
winget-pkgs,
Virtual-Gamepad-Emulation-Bus,
Virtual-Gamepad-Emulation-Client,
Virtual-Gamepad-Emulation-dotnet

runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/issues-stale.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,7 @@
# Manage stale issues and PRs.

name: Stale Issues / PRs
permissions: {}

on:
schedule:
Expand All@@ -14,6 +15,7 @@ on:

jobs:
setup-matrix:
name: Setup Matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.result }}
Expand All@@ -35,8 +37,8 @@ jobs:
return matrix

test-matrix:
if: github.event_name == 'workflow_dispatch'
name: Test Matrix - ${{ matrix.repo }}
if: github.event_name == 'workflow_dispatch'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand All@@ -47,8 +49,8 @@ jobs:
run: echo ${{ matrix.repo }}

stale:
if: github.event_name == 'schedule'
name: Check Stale Issues / PRs
if: github.event_name == 'schedule'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/issues.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,17 @@
# Label and un-label actions using `../label-actions.yml`.

name: Issues
permissions: {}

on:
issues:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled
discussion:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled

jobs:
label:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/patch_missing_releases.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,14 +5,15 @@
# It was discovered that the releases will re-appear if they are manually "edited".

name: Patch Missing Releases
permissions: {}

on:
workflow_dispatch:

jobs:
patch_missing_releases:
name: Patch Missing Releases
runs-on: ubuntu-latest

steps:
- name: Patch
uses: actions/github-script@v7
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' ci(codeql): enable for github actions by ReenigneArcher · Pull Request #448 · LizardByte/.github · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 29 additions & 18 deletions .github/workflows/ci-docker.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,13 +19,20 @@
# GitHub runner.

name: CI Docker
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened
push:
branches: [master]
branches:
- master
workflow_dispatch:

concurrency:
Expand DownExpand Up@@ -97,10 +104,9 @@ jobs:
solution: ${{ steps.find_dotnet.outputs.solution }}

setup_release:
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
name: Setup Release
needs:
- check_dockerfiles
if: needs.check_dockerfiles.outputs.dockerfiles
needs: check_dockerfiles
outputs:
publish_release: ${{ steps.setup_release.outputs.publish_release }}
release_body: ${{ steps.setup_release.outputs.release_body }}
Expand All@@ -121,17 +127,18 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}

docker:
needs: [check_dockerfiles, setup_release]
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
runs-on: ubuntu-22.04
name: Docker${{ matrix.tag }}
if: needs.check_dockerfiles.outputs.dockerfiles
needs:
- check_dockerfiles
- setup_release
permissions:
packages: write
contents: write
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.check_dockerfiles.outputs.matrix) }}
name: Docker${{ matrix.tag }}

steps:
- name: Maximize build space
uses: easimon/maximize-build-space@v10
Expand DownExpand Up@@ -256,22 +263,22 @@ jobs:
Docker-buildx${{ matrix.tag }}-

- name: Log in to Docker Hub
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

- name: Log in to the Container registry
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ secrets.GH_BOT_NAME }}
password: ${{ secrets.GH_BOT_TOKEN }}

- name: Build artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
id: build_artifacts
uses: docker/build-push-action@v6
with:
Expand DownExpand Up@@ -314,7 +321,7 @@ jobs:
no-cache-filters: ${{ steps.prepare.outputs.no_cache_filters }}

- name: Arrange Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
working-directory: artifacts
run: |
# debug directory
Expand All@@ -336,14 +343,16 @@ jobs:
rm -f ./provenance.json

- name: Upload Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
uses: actions/upload-artifact@v4
with:
name: Docker${{ matrix.tag }}
path: artifacts/

- name: Create/Update GitHub Release
if: ${{ needs.setup_release.outputs.publish_release == 'true' && steps.prepare.outputs.artifacts == 'true' }}
if: >
needs.setup_release.outputs.publish_release == 'true' &&
steps.prepare.outputs.artifacts == 'true'
uses: LizardByte/create-release-action@v2025.102.13208
with:
allowUpdates: true
Expand All@@ -356,7 +365,9 @@ jobs:
token: ${{ secrets.GH_BOT_TOKEN }}

- name: Update Docker Hub Description
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
if: >
github.event_name == 'push' &&
github.ref == 'refs/heads/master'
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/cla-gist-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# required for CLA Assistant.

name: CLA gist replicator
permissions:
contents: read

on:
push:
branches: [master]
branches:
- master
paths:
- "cla/**"
workflow_dispatch:
Expand All@@ -15,7 +18,6 @@ jobs:
replicate_cla:
name: Replicate CLA
runs-on: ubuntu-latest

strategy: # the action doesn't currently support multiple files
fail-fast: true # false to run all, true to fail entire job if any fail
max-parallel: 1 # let's update files one by one to avoid complications
Expand All@@ -24,7 +26,6 @@ jobs:
- file_path: 'cla/CLA'
- file_path: 'cla/CLA-entity'
- file_path: 'cla/metadata'

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
42 changes: 31 additions & 11 deletions .github/workflows/codeql.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,16 @@
# This workflow will analyze all supported languages in the repository using CodeQL Analysis.

name: "CodeQL"
permissions:
contents: read

on:
push:
branches: ["master"]
branches:
- master
pull_request:
branches: ["master"]
branches:
- master
schedule:
- cron: '00 12 * * 0' # every Sunday at 12:00 UTC

Expand All@@ -22,14 +26,17 @@ concurrency:
jobs:
languages:
name: Get language matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.lang.outputs.result }}
continue: ${{ steps.continue.outputs.result }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Get repo languages
uses: actions/github-script@v7
id: lang
uses: actions/github-script@v7
with:
script: |
// CodeQL supports ['cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift']
Expand All@@ -54,6 +61,21 @@ jobs:
// Track languages we've already added to avoid duplicates
const addedLanguages = new Set()

// Check if workflow files exist to determine if we should add actions language
const fs = require('fs');
const hasYmlFiles = fs.existsSync('.github/workflows') &&
fs.readdirSync('.github/workflows').some(file => file.endsWith('.yml') || file.endsWith('.yaml'));

// Add actions language if workflow files exist
if (hasYmlFiles) {
console.log('Found GitHub Actions workflow files. Adding actions to the matrix.');
matrix['include'].push({
"language": "actions",
"os": "ubuntu-latest",
"name": "actions"
});
}

for (let [key, value] of Object.entries(response.data)) {
// remap language
if (remap_languages[key.toLowerCase()]) {
Expand DownExpand Up@@ -94,8 +116,8 @@ jobs:
return matrix

- name: Continue
uses: actions/github-script@v7
id: continue
uses: actions/github-script@v7
with:
script: |
// if matrix['include'] is an empty list return false, otherwise true
Expand All@@ -109,24 +131,22 @@ jobs:

analyze:
name: Analyze (${{ matrix.name }})
if: ${{ needs.languages.outputs.continue == 'true' }}
if: needs.languages.outputs.continue == 'true'
defaults:
run:
shell: ${{ matrix.os == 'windows-latest' && 'msys2 {0}' || 'bash' }}
env:
GITHUB_CODEQL_BUILD: true
needs: [languages]
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
needs: languages
permissions:
actions: read
contents: read
security-events: write

runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.languages.outputs.matrix) }}

timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
steps:
- name: Maximize build space
if: >-
Expand Down
13 changes: 9 additions & 4 deletions .github/workflows/common-lint.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,11 +6,17 @@
# Common linting.

name: common lint
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
Expand DownExpand Up@@ -263,5 +269,4 @@ jobs:

- name: YAML - log
if: always() && steps.yamllint.outcome == 'failure'
run: |
cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
run: cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
9 changes: 5 additions & 4 deletions .github/workflows/global-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# repos.

name: Global replicator
permissions:
contents: read

on:
push:
branches: [master] # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
branches:
- master # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
workflow_dispatch:
inputs:
repo_name:
Expand All@@ -18,18 +21,16 @@ on:

jobs:
replicate:
runs-on: ubuntu-latest
name: Replicate files
env:
BOT_BRANCH_NAME: 'bot/update-files-from-global-repo'
COMMIT_MESSAGE: 'chore: update global workflows'
REPOS_TO_IGNORE: >-
homebrew-core,
winget-pkgs,
Virtual-Gamepad-Emulation-Bus,
Virtual-Gamepad-Emulation-Client,
Virtual-Gamepad-Emulation-dotnet

runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/issues-stale.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,7 @@
# Manage stale issues and PRs.

name: Stale Issues / PRs
permissions: {}

on:
schedule:
Expand All@@ -14,6 +15,7 @@ on:

jobs:
setup-matrix:
name: Setup Matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.result }}
Expand All@@ -35,8 +37,8 @@ jobs:
return matrix

test-matrix:
if: github.event_name == 'workflow_dispatch'
name: Test Matrix - ${{ matrix.repo }}
if: github.event_name == 'workflow_dispatch'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand All@@ -47,8 +49,8 @@ jobs:
run: echo ${{ matrix.repo }}

stale:
if: github.event_name == 'schedule'
name: Check Stale Issues / PRs
if: github.event_name == 'schedule'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/issues.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,17 @@
# Label and un-label actions using `../label-actions.yml`.

name: Issues
permissions: {}

on:
issues:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled
discussion:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled

jobs:
label:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/patch_missing_releases.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,14 +5,15 @@
# It was discovered that the releases will re-appear if they are manually "edited".

name: Patch Missing Releases
permissions: {}

on:
workflow_dispatch:

jobs:
patch_missing_releases:
name: Patch Missing Releases
runs-on: ubuntu-latest

steps:
- name: Patch
uses: actions/github-script@v7
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' ci(codeql): enable for github actions by ReenigneArcher · Pull Request #448 · LizardByte/.github · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 29 additions & 18 deletions .github/workflows/ci-docker.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,13 +19,20 @@
# GitHub runner.

name: CI Docker
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened
push:
branches: [master]
branches:
- master
workflow_dispatch:

concurrency:
Expand DownExpand Up@@ -97,10 +104,9 @@ jobs:
solution: ${{ steps.find_dotnet.outputs.solution }}

setup_release:
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
name: Setup Release
needs:
- check_dockerfiles
if: needs.check_dockerfiles.outputs.dockerfiles
needs: check_dockerfiles
outputs:
publish_release: ${{ steps.setup_release.outputs.publish_release }}
release_body: ${{ steps.setup_release.outputs.release_body }}
Expand All@@ -121,17 +127,18 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}

docker:
needs: [check_dockerfiles, setup_release]
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
runs-on: ubuntu-22.04
name: Docker${{ matrix.tag }}
if: needs.check_dockerfiles.outputs.dockerfiles
needs:
- check_dockerfiles
- setup_release
permissions:
packages: write
contents: write
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.check_dockerfiles.outputs.matrix) }}
name: Docker${{ matrix.tag }}

steps:
- name: Maximize build space
uses: easimon/maximize-build-space@v10
Expand DownExpand Up@@ -256,22 +263,22 @@ jobs:
Docker-buildx${{ matrix.tag }}-

- name: Log in to Docker Hub
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

- name: Log in to the Container registry
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ secrets.GH_BOT_NAME }}
password: ${{ secrets.GH_BOT_TOKEN }}

- name: Build artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
id: build_artifacts
uses: docker/build-push-action@v6
with:
Expand DownExpand Up@@ -314,7 +321,7 @@ jobs:
no-cache-filters: ${{ steps.prepare.outputs.no_cache_filters }}

- name: Arrange Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
working-directory: artifacts
run: |
# debug directory
Expand All@@ -336,14 +343,16 @@ jobs:
rm -f ./provenance.json

- name: Upload Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
uses: actions/upload-artifact@v4
with:
name: Docker${{ matrix.tag }}
path: artifacts/

- name: Create/Update GitHub Release
if: ${{ needs.setup_release.outputs.publish_release == 'true' && steps.prepare.outputs.artifacts == 'true' }}
if: >
needs.setup_release.outputs.publish_release == 'true' &&
steps.prepare.outputs.artifacts == 'true'
uses: LizardByte/create-release-action@v2025.102.13208
with:
allowUpdates: true
Expand All@@ -356,7 +365,9 @@ jobs:
token: ${{ secrets.GH_BOT_TOKEN }}

- name: Update Docker Hub Description
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
if: >
github.event_name == 'push' &&
github.ref == 'refs/heads/master'
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/cla-gist-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# required for CLA Assistant.

name: CLA gist replicator
permissions:
contents: read

on:
push:
branches: [master]
branches:
- master
paths:
- "cla/**"
workflow_dispatch:
Expand All@@ -15,7 +18,6 @@ jobs:
replicate_cla:
name: Replicate CLA
runs-on: ubuntu-latest

strategy: # the action doesn't currently support multiple files
fail-fast: true # false to run all, true to fail entire job if any fail
max-parallel: 1 # let's update files one by one to avoid complications
Expand All@@ -24,7 +26,6 @@ jobs:
- file_path: 'cla/CLA'
- file_path: 'cla/CLA-entity'
- file_path: 'cla/metadata'

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
42 changes: 31 additions & 11 deletions .github/workflows/codeql.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,16 @@
# This workflow will analyze all supported languages in the repository using CodeQL Analysis.

name: "CodeQL"
permissions:
contents: read

on:
push:
branches: ["master"]
branches:
- master
pull_request:
branches: ["master"]
branches:
- master
schedule:
- cron: '00 12 * * 0' # every Sunday at 12:00 UTC

Expand All@@ -22,14 +26,17 @@ concurrency:
jobs:
languages:
name: Get language matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.lang.outputs.result }}
continue: ${{ steps.continue.outputs.result }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Get repo languages
uses: actions/github-script@v7
id: lang
uses: actions/github-script@v7
with:
script: |
// CodeQL supports ['cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift']
Expand All@@ -54,6 +61,21 @@ jobs:
// Track languages we've already added to avoid duplicates
const addedLanguages = new Set()

// Check if workflow files exist to determine if we should add actions language
const fs = require('fs');
const hasYmlFiles = fs.existsSync('.github/workflows') &&
fs.readdirSync('.github/workflows').some(file => file.endsWith('.yml') || file.endsWith('.yaml'));

// Add actions language if workflow files exist
if (hasYmlFiles) {
console.log('Found GitHub Actions workflow files. Adding actions to the matrix.');
matrix['include'].push({
"language": "actions",
"os": "ubuntu-latest",
"name": "actions"
});
}

for (let [key, value] of Object.entries(response.data)) {
// remap language
if (remap_languages[key.toLowerCase()]) {
Expand DownExpand Up@@ -94,8 +116,8 @@ jobs:
return matrix

- name: Continue
uses: actions/github-script@v7
id: continue
uses: actions/github-script@v7
with:
script: |
// if matrix['include'] is an empty list return false, otherwise true
Expand All@@ -109,24 +131,22 @@ jobs:

analyze:
name: Analyze (${{ matrix.name }})
if: ${{ needs.languages.outputs.continue == 'true' }}
if: needs.languages.outputs.continue == 'true'
defaults:
run:
shell: ${{ matrix.os == 'windows-latest' && 'msys2 {0}' || 'bash' }}
env:
GITHUB_CODEQL_BUILD: true
needs: [languages]
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
needs: languages
permissions:
actions: read
contents: read
security-events: write

runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.languages.outputs.matrix) }}

timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
steps:
- name: Maximize build space
if: >-
Expand Down
13 changes: 9 additions & 4 deletions .github/workflows/common-lint.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,11 +6,17 @@
# Common linting.

name: common lint
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
Expand DownExpand Up@@ -263,5 +269,4 @@ jobs:

- name: YAML - log
if: always() && steps.yamllint.outcome == 'failure'
run: |
cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
run: cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
9 changes: 5 additions & 4 deletions .github/workflows/global-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# repos.

name: Global replicator
permissions:
contents: read

on:
push:
branches: [master] # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
branches:
- master # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
workflow_dispatch:
inputs:
repo_name:
Expand All@@ -18,18 +21,16 @@ on:

jobs:
replicate:
runs-on: ubuntu-latest
name: Replicate files
env:
BOT_BRANCH_NAME: 'bot/update-files-from-global-repo'
COMMIT_MESSAGE: 'chore: update global workflows'
REPOS_TO_IGNORE: >-
homebrew-core,
winget-pkgs,
Virtual-Gamepad-Emulation-Bus,
Virtual-Gamepad-Emulation-Client,
Virtual-Gamepad-Emulation-dotnet

runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/issues-stale.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,7 @@
# Manage stale issues and PRs.

name: Stale Issues / PRs
permissions: {}

on:
schedule:
Expand All@@ -14,6 +15,7 @@ on:

jobs:
setup-matrix:
name: Setup Matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.result }}
Expand All@@ -35,8 +37,8 @@ jobs:
return matrix

test-matrix:
if: github.event_name == 'workflow_dispatch'
name: Test Matrix - ${{ matrix.repo }}
if: github.event_name == 'workflow_dispatch'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand All@@ -47,8 +49,8 @@ jobs:
run: echo ${{ matrix.repo }}

stale:
if: github.event_name == 'schedule'
name: Check Stale Issues / PRs
if: github.event_name == 'schedule'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/issues.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,17 @@
# Label and un-label actions using `../label-actions.yml`.

name: Issues
permissions: {}

on:
issues:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled
discussion:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled

jobs:
label:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/patch_missing_releases.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,14 +5,15 @@
# It was discovered that the releases will re-appear if they are manually "edited".

name: Patch Missing Releases
permissions: {}

on:
workflow_dispatch:

jobs:
patch_missing_releases:
name: Patch Missing Releases
runs-on: ubuntu-latest

steps:
- name: Patch
uses: actions/github-script@v7
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); ci(codeql): enable for github actions by ReenigneArcher · Pull Request #448 · LizardByte/.github · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 29 additions & 18 deletions .github/workflows/ci-docker.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -19,13 +19,20 @@
# GitHub runner.

name: CI Docker
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened
push:
branches: [master]
branches:
- master
workflow_dispatch:

concurrency:
Expand DownExpand Up@@ -97,10 +104,9 @@ jobs:
solution: ${{ steps.find_dotnet.outputs.solution }}

setup_release:
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
name: Setup Release
needs:
- check_dockerfiles
if: needs.check_dockerfiles.outputs.dockerfiles
needs: check_dockerfiles
outputs:
publish_release: ${{ steps.setup_release.outputs.publish_release }}
release_body: ${{ steps.setup_release.outputs.release_body }}
Expand All@@ -121,17 +127,18 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}

docker:
needs: [check_dockerfiles, setup_release]
if: ${{ needs.check_dockerfiles.outputs.dockerfiles }}
runs-on: ubuntu-22.04
name: Docker${{ matrix.tag }}
if: needs.check_dockerfiles.outputs.dockerfiles
needs:
- check_dockerfiles
- setup_release
permissions:
packages: write
contents: write
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.check_dockerfiles.outputs.matrix) }}
name: Docker${{ matrix.tag }}

steps:
- name: Maximize build space
uses: easimon/maximize-build-space@v10
Expand DownExpand Up@@ -256,22 +263,22 @@ jobs:
Docker-buildx${{ matrix.tag }}-

- name: Log in to Docker Hub
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

- name: Log in to the Container registry
if: ${{ needs.setup_release.outputs.publish_release == 'true' }} # PRs do not have access to secrets
if: needs.setup_release.outputs.publish_release == 'true' # PRs do not have access to secrets
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ secrets.GH_BOT_NAME }}
password: ${{ secrets.GH_BOT_TOKEN }}

- name: Build artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
id: build_artifacts
uses: docker/build-push-action@v6
with:
Expand DownExpand Up@@ -314,7 +321,7 @@ jobs:
no-cache-filters: ${{ steps.prepare.outputs.no_cache_filters }}

- name: Arrange Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
working-directory: artifacts
run: |
# debug directory
Expand All@@ -336,14 +343,16 @@ jobs:
rm -f ./provenance.json

- name: Upload Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
if: steps.prepare.outputs.artifacts == 'true'
uses: actions/upload-artifact@v4
with:
name: Docker${{ matrix.tag }}
path: artifacts/

- name: Create/Update GitHub Release
if: ${{ needs.setup_release.outputs.publish_release == 'true' && steps.prepare.outputs.artifacts == 'true' }}
if: >
needs.setup_release.outputs.publish_release == 'true' &&
steps.prepare.outputs.artifacts == 'true'
uses: LizardByte/create-release-action@v2025.102.13208
with:
allowUpdates: true
Expand All@@ -356,7 +365,9 @@ jobs:
token: ${{ secrets.GH_BOT_TOKEN }}

- name: Update Docker Hub Description
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
if: >
github.event_name == 'push' &&
github.ref == 'refs/heads/master'
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/cla-gist-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# required for CLA Assistant.

name: CLA gist replicator
permissions:
contents: read

on:
push:
branches: [master]
branches:
- master
paths:
- "cla/**"
workflow_dispatch:
Expand All@@ -15,7 +18,6 @@ jobs:
replicate_cla:
name: Replicate CLA
runs-on: ubuntu-latest

strategy: # the action doesn't currently support multiple files
fail-fast: true # false to run all, true to fail entire job if any fail
max-parallel: 1 # let's update files one by one to avoid complications
Expand All@@ -24,7 +26,6 @@ jobs:
- file_path: 'cla/CLA'
- file_path: 'cla/CLA-entity'
- file_path: 'cla/metadata'

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
42 changes: 31 additions & 11 deletions .github/workflows/codeql.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,16 @@
# This workflow will analyze all supported languages in the repository using CodeQL Analysis.

name: "CodeQL"
permissions:
contents: read

on:
push:
branches: ["master"]
branches:
- master
pull_request:
branches: ["master"]
branches:
- master
schedule:
- cron: '00 12 * * 0' # every Sunday at 12:00 UTC

Expand All@@ -22,14 +26,17 @@ concurrency:
jobs:
languages:
name: Get language matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.lang.outputs.result }}
continue: ${{ steps.continue.outputs.result }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Get repo languages
uses: actions/github-script@v7
id: lang
uses: actions/github-script@v7
with:
script: |
// CodeQL supports ['cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift']
Expand All@@ -54,6 +61,21 @@ jobs:
// Track languages we've already added to avoid duplicates
const addedLanguages = new Set()

// Check if workflow files exist to determine if we should add actions language
const fs = require('fs');
const hasYmlFiles = fs.existsSync('.github/workflows') &&
fs.readdirSync('.github/workflows').some(file => file.endsWith('.yml') || file.endsWith('.yaml'));

// Add actions language if workflow files exist
if (hasYmlFiles) {
console.log('Found GitHub Actions workflow files. Adding actions to the matrix.');
matrix['include'].push({
"language": "actions",
"os": "ubuntu-latest",
"name": "actions"
});
}

for (let [key, value] of Object.entries(response.data)) {
// remap language
if (remap_languages[key.toLowerCase()]) {
Expand DownExpand Up@@ -94,8 +116,8 @@ jobs:
return matrix

- name: Continue
uses: actions/github-script@v7
id: continue
uses: actions/github-script@v7
with:
script: |
// if matrix['include'] is an empty list return false, otherwise true
Expand All@@ -109,24 +131,22 @@ jobs:

analyze:
name: Analyze (${{ matrix.name }})
if: ${{ needs.languages.outputs.continue == 'true' }}
if: needs.languages.outputs.continue == 'true'
defaults:
run:
shell: ${{ matrix.os == 'windows-latest' && 'msys2 {0}' || 'bash' }}
env:
GITHUB_CODEQL_BUILD: true
needs: [languages]
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
needs: languages
permissions:
actions: read
contents: read
security-events: write

runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.languages.outputs.matrix) }}

timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
steps:
- name: Maximize build space
if: >-
Expand Down
13 changes: 9 additions & 4 deletions .github/workflows/common-lint.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,11 +6,17 @@
# Common linting.

name: common lint
permissions:
contents: read

on:
pull_request:
branches: [master]
types: [opened, synchronize, reopened]
branches:
- master
types:
- opened
- synchronize
- reopened

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
Expand DownExpand Up@@ -263,5 +269,4 @@ jobs:

- name: YAML - log
if: always() && steps.yamllint.outcome == 'failure'
run: |
cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
run: cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
9 changes: 5 additions & 4 deletions .github/workflows/global-replicator.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,10 +3,13 @@
# repos.

name: Global replicator
permissions:
contents: read

on:
push:
branches: [master] # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
branches:
- master # only files that changed in the commit will be replicated, unless using `workflow_dispatch`
workflow_dispatch:
inputs:
repo_name:
Expand All@@ -18,18 +21,16 @@ on:

jobs:
replicate:
runs-on: ubuntu-latest
name: Replicate files
env:
BOT_BRANCH_NAME: 'bot/update-files-from-global-repo'
COMMIT_MESSAGE: 'chore: update global workflows'
REPOS_TO_IGNORE: >-
homebrew-core,
winget-pkgs,
Virtual-Gamepad-Emulation-Bus,
Virtual-Gamepad-Emulation-Client,
Virtual-Gamepad-Emulation-dotnet

runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/issues-stale.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,6 +6,7 @@
# Manage stale issues and PRs.

name: Stale Issues / PRs
permissions: {}

on:
schedule:
Expand All@@ -14,6 +15,7 @@ on:

jobs:
setup-matrix:
name: Setup Matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.result }}
Expand All@@ -35,8 +37,8 @@ jobs:
return matrix

test-matrix:
if: github.event_name == 'workflow_dispatch'
name: Test Matrix - ${{ matrix.repo }}
if: github.event_name == 'workflow_dispatch'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand All@@ -47,8 +49,8 @@ jobs:
run: echo ${{ matrix.repo }}

stale:
if: github.event_name == 'schedule'
name: Check Stale Issues / PRs
if: github.event_name == 'schedule'
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/issues.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,17 @@
# Label and un-label actions using `../label-actions.yml`.

name: Issues
permissions: {}

on:
issues:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled
discussion:
types: [labeled, unlabeled]
types:
- labeled
- unlabeled

jobs:
label:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/patch_missing_releases.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,14 +5,15 @@
# It was discovered that the releases will re-appear if they are manually "edited".

name: Patch Missing Releases
permissions: {}

on:
workflow_dispatch:

jobs:
patch_missing_releases:
name: Patch Missing Releases
runs-on: ubuntu-latest

steps:
- name: Patch
uses: actions/github-script@v7
Expand Down
Loading