Skip to content

Commit

Permalink
修改 action;
Browse files Browse the repository at this point in the history
  • Loading branch information
RealChuan committed Nov 28, 2023
1 parent 18da551 commit 000e72f
Show file tree
Hide file tree
Showing 7 changed files with 248 additions and 41 deletions.
40 changes: 40 additions & 0 deletions .github/workflows/clean_cache.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Cleanup caches by a branch
on:
# 每周一 0 点触发
schedule:
- cron: '0 0 * * 1'
workflow_dispatch:

jobs:
cleanup:
runs-on: ubuntu-latest
permissions:
# `actions:write` permission is required to delete caches
# See also: https://docs.github.com/en/rest/actions/cache?apiVersion=2022-11-28#delete-a-github-actions-cache-for-a-repository-using-a-cache-id
actions: write
contents: read
steps:
- name: Check out code
uses: actions/checkout@v4

- name: Cleanup
run: |
gh extension install actions/gh-actions-cache
REPO=${{ github.repository }}
BRANCH=${{ github.ref }}
echo "Fetching list of cache key"
cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH | cut -f 1 )
## Setting this to not fail the workflow while deleting cache keys.
set +e
echo "Deleting caches..."
for cacheKey in $cacheKeysForPR
do
gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
done
echo "Done"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

62 changes: 38 additions & 24 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,23 @@ on:
# push代码时触发workflow
push:
paths-ignore: # 下列文件的变更不触发部署,可以自行添加
- '.github/workflows/clean_cache.yml'
- '.github/workflows/delete_workflow.yml'
- '.github/workflows/qmake.yml'
- '.github/workflows/readme.yml'
- '.github/workflows/toolchain.yml'
- 'doc/**'
- '.clang-*'
- '.gitignore'
- 'LICENSE'
- 'README*'
pull_request:
paths-ignore: # 下列文件的变更不触发部署,可以自行添加
- '.github/workflows/clean_cache.yml'
- '.github/workflows/delete_workflow.yml'
- '.github/workflows/qmake.yml'
- '.github/workflows/readme.yml'
- '.github/workflows/toolchain.yml'
- 'doc/**'
- '.clang-*'
- '.gitignore'
Expand All @@ -29,23 +39,26 @@ jobs:
- macos-latest
- ubuntu-latest
qt_ver:
- 6.5.2
- 6.6.1
build_type:
- "RelWithDebInfo"
generators:
- "Ninja"

steps:
- name: cache vcpkg
uses: actions/cache@v3
with:
path: |
C:\vcpkg\installed
/usr/local/share/vcpkg/installed
key: ${{ runner.os }}-vcpkg-installed-${{ matrix.os }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-vcpkg-installed-${{ matrix.os }}-
${{ runner.os }}-vcpkg-installed-
- name: Restore windows vcpkg
if: startsWith(matrix.os, 'windows')
uses: actions/cache/restore@v3
with:
path: C:\vcpkg\installed
key: ${{ runner.os }}-vcpkg-installed-${{ matrix.os }}
- name: Restore macos or ubuntu vcpkg
if: startsWith(matrix.os, 'macos') || startsWith(matrix.os, 'ubuntu')
uses: actions/cache/restore@v3
with:
path: /usr/local/share/vcpkg/installed
key: ${{ runner.os }}-vcpkg-installed-${{ matrix.os }}

- name: Install dependencies on windows
if: startsWith(matrix.os, 'windows')
shell: bash
Expand Down Expand Up @@ -79,10 +92,10 @@ jobs:
with:
version: ${{ matrix.qt_ver }}
install-deps: 'true'
modules: 'qt5compat addons.qtserialport addons.qtnetworkauth addons.qtmultimedia addons.qtimageformats'
modules: 'qt5compat qtserialport qtnetworkauth qtmultimedia qtimageformats'
cache: 'true'

- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 1

Expand Down Expand Up @@ -180,16 +193,16 @@ jobs:
rm -f ./bin-64/${{ matrix.build_type }}/*.so
mv *.AppImage ./bin-64/${{ matrix.build_type }}
- name: Show Upload files
- name: 7z package
shell: bash
run: |
ls -l ./bin-64/${{ matrix.build_type }}
ls -al ./bin-64/${{ matrix.build_type }}
7z a -t7z -r -mx=9 -mmt Qt-App-${{ matrix.os }}-${{ matrix.build_type }}.7z ./bin-64/${{ matrix.build_type }}/*
- name: Upload packages
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.os }}-${{ matrix.build_type }}
path: |
./bin-64/${{ matrix.build_type }}
path: Qt-App-${{ matrix.os }}-${{ matrix.build_type }}.7z

release:
name: Release
Expand All @@ -201,14 +214,15 @@ jobs:
steps:
- name: Download packages
uses: actions/download-artifact@v3
- name: Zip packages

- name: Move packages
shell: bash
run: |
ls -l
zip -9 -r Qt-App-Windows.zip windows-latest-RelWithDebInfo
zip -9 -r Qt-App-MacOS.zip macos-latest-RelWithDebInfo
zip -9 -r Qt-App-Ubuntu.zip ubuntu-latest-RelWithDebInfo
ls -l
ls -al
mv ./windows-latest-RelWithDebInfo/Qt-App-*.7z .
mv ./macos-latest-RelWithDebInfo/Qt-App-*.7z .
mv ./ubuntu-latest-RelWithDebInfo/Qt-App-*.7z .
ls -al
- name: Create Release
uses: softprops/action-gh-release@v1
Expand All @@ -217,4 +231,4 @@ jobs:
prerelease: false
generate_release_notes: true
files: |
*.zip
*.7z
65 changes: 65 additions & 0 deletions .github/workflows/delete_workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Delete old workflow runs
on:
workflow_dispatch:
inputs:
days:
description: 'Days-worth of runs to keep for each workflow'
required: true
default: '30'
minimum_runs:
description: 'Minimum runs to keep for each workflow'
required: true
default: '6'
delete_workflow_pattern:
description: 'Name or filename of the workflow (if not set, all workflows are targeted)'
required: false
delete_workflow_by_state_pattern:
description: 'Filter workflows by state: active, deleted, disabled_fork, disabled_inactivity, disabled_manually'
required: true
default: "ALL"
type: choice
options:
- "ALL"
- active
- deleted
- disabled_inactivity
- disabled_manually
delete_run_by_conclusion_pattern:
description: 'Remove runs based on conclusion: action_required, cancelled, failure, skipped, success'
required: true
default: "failure"
type: choice
options:
- "ALL"
- "Unsuccessful: action_required,cancelled,failure,skipped"
- action_required
- cancelled
- failure
- skipped
- success
dry_run:
description: 'Logs simulated changes, no deletions are performed'
required: false

jobs:
del_runs:
runs-on: ubuntu-latest
permissions:
actions: write
steps:
- name: Delete workflow runs
uses: Mattraks/delete-workflow-runs@v2
with:
token: ${{ github.token }}
repository: ${{ github.repository }}
retain_days: ${{ github.event.inputs.days }}
keep_minimum_runs: ${{ github.event.inputs.minimum_runs }}
delete_workflow_pattern: ${{ github.event.inputs.delete_workflow_pattern }}
delete_workflow_by_state_pattern: ${{ github.event.inputs.delete_workflow_by_state_pattern }}
delete_run_by_conclusion_pattern: >-
${{
startsWith(github.event.inputs.delete_run_by_conclusion_pattern, 'Unsuccessful:')
&& 'action_required,cancelled,failure,skipped'
|| github.event.inputs.delete_run_by_conclusion_pattern
}}
dry_run: ${{ github.event.inputs.dry_run }}
39 changes: 26 additions & 13 deletions .github/workflows/qmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,23 @@ on:
# push代码时触发workflow
push:
paths-ignore: # 下列文件的变更不触发部署,可以自行添加
- '.github/workflows/clean_cache.yml'
- '.github/workflows/delete_workflow.yml'
- '.github/workflows/cmake.yml'
- '.github/workflows/readme.yml'
- '.github/workflows/toolchain.yml'
- 'doc/**'
- '.clang-*'
- '.gitignore'
- 'LICENSE'
- 'README*'
pull_request:
paths-ignore: # 下列文件的变更不触发部署,可以自行添加
- '.github/workflows/clean_cache.yml'
- '.github/workflows/delete_workflow.yml'
- '.github/workflows/cmake.yml'
- '.github/workflows/readme.yml'
- '.github/workflows/toolchain.yml'
- 'doc/**'
- '.clang-*'
- '.gitignore'
Expand All @@ -29,19 +39,22 @@ jobs:
- macos-latest
- ubuntu-latest
qt_ver:
- 6.5.2
- 6.6.1

steps:
- name: cache vcpkg
uses: actions/cache@v3
with:
path: |
C:\vcpkg\installed
/usr/local/share/vcpkg/installed
key: ${{ runner.os }}-vcpkg-installed-${{ matrix.os }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-vcpkg-installed-${{ matrix.os }}-
${{ runner.os }}-vcpkg-installed-
- name: Restore windows vcpkg
if: startsWith(matrix.os, 'windows')
uses: actions/cache/restore@v3
with:
path: C:\vcpkg\installed
key: ${{ runner.os }}-vcpkg-installed-${{ matrix.os }}
- name: Restore macos or ubuntu vcpkg
if: startsWith(matrix.os, 'macos') || startsWith(matrix.os, 'ubuntu')
uses: actions/cache/restore@v3
with:
path: /usr/local/share/vcpkg/installed
key: ${{ runner.os }}-vcpkg-installed-${{ matrix.os }}

- name: Install dependencies on windows
if: startsWith(matrix.os, 'windows')
shell: bash
Expand Down Expand Up @@ -75,10 +88,10 @@ jobs:
with:
version: ${{ matrix.qt_ver }}
install-deps: 'true'
modules: 'qt5compat addons.qtserialport addons.qtnetworkauth addons.qtmultimedia addons.qtimageformats'
modules: 'qt5compat qtserialport qtnetworkauth qtmultimedia qtimageformats'
cache: 'true'

- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 1

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/readme.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v4
with:
node-version: 12.x
# ISO Langusge Codes: https://cloud.google.com/translate/docs/languages
Expand Down
75 changes: 75 additions & 0 deletions .github/workflows/toolchain.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Build toolchain

on:
# 清理 Cache 后触发
workflow_run:
workflows: [Cleanup caches by a branch]
types: completed
# 手动触发
workflow_dispatch:

jobs:
build:
name: Build
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- windows-latest
- windows-2019
- macos-latest
- ubuntu-latest
qt_ver:
- 6.6.1

steps:
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt_ver }}
install-deps: 'true'
modules: 'qt5compat qtserialport qtnetworkauth qtmultimedia qtimageformats'
cache: 'true'

- name: Install dependencies on windows
if: startsWith(matrix.os, 'windows')
shell: bash
run: |
choco install ninja
ninja --version
cmake --version
vcpkg install breakpad --triplet x64-windows
- name: Install dependencies on macos
if: startsWith(matrix.os, 'macos')
shell: bash
run: |
brew install ninja nasm pkg-config
ninja --version
cmake --version
clang --version
vcpkg install breakpad --triplet x64-osx
- name: Install dependencies on ubuntu
if: startsWith(matrix.os, 'ubuntu')
shell: bash
run: |
sudo apt-get update
sudo apt-get install ninja-build nasm build-essential libgl1-mesa-dev
ninja --version
cmake --version
gcc --version
vcpkg install breakpad --triplet x64-linux
- name: cache windows vcpkg
if: startsWith(matrix.os, 'windows')
uses: actions/cache/save@v3
with:
path: C:\vcpkg\installed
key: ${{ runner.os }}-vcpkg-installed-${{ matrix.os }}
- name: cache macos or ubuntu vcpkg
if: startsWith(matrix.os, 'macos') || startsWith(matrix.os, 'ubuntu')
uses: actions/cache/save@v3
with:
path: /usr/local/share/vcpkg/installed
key: ${{ runner.os }}-vcpkg-installed-${{ matrix.os }}

Loading

0 comments on commit 000e72f

Please sign in to comment.