Skip to content

add dkTurbo

add dkTurbo #276

name: Create Release
permissions:
contents: write
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Number of commits to fetch. 0 indicates all history for all branches and tags.
- name: Get Commit Messages
id: get_commit_messages
run: |
# Get the latest tag
LATEST_TAG=$(git tag --sort=-creatordate | head -n 1)
# If there is no latest tag, get only the latest commit message
if [ -z "$LATEST_TAG" ]; then
COMMITS=$(git log -1 --pretty=format:'- %s (%h)')
else
COMMITS=$(git log --pretty=format:'- %s (%h)' --no-merges "$LATEST_TAG"..HEAD)
fi
# Output Multi-Line String
echo "commits<<EOF" >> $GITHUB_OUTPUT
echo "$COMMITS" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
# Get the release date
RELEASE_DATE=$(date +'%Y%m%d')
echo "release_date=$RELEASE_DATE" >> $GITHUB_OUTPUT
- name: Delete tag and release
uses: dev-drprasad/[email protected]
with:
tag_name: new
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Filter and Create Release
id: create_release
run: |
# Build universal
zip AppStore.zip $(find . -type f \( -wholename "./*.json" -o -wholename "./Apps/*.yml" \))
universal_count=$(find ./Apps/ -name "*.yml" | wc -l)
# Build arm
[ -d "./Apps_arm" ] && cp -rfu ./Apps_arm/* ./Apps/
zip AppStore_arm.zip $(find . -type f -wholename "./*.json" && find . -type f -wholename "./Apps/*.yml" -exec grep -rlPz 'x-casaos:\s*\n\s*architectures:[\n\s\w-#]*- arm\s*\n' {} \;)
arm_count=$(find . -type f -wholename "./Apps/*.yml" -exec grep -rlPz 'x-casaos:\s*\n\s*architectures:[\n\s\w-#]*- arm\s*\n' {} \; | wc -l)
git checkout -- ./Apps && git clean -df ./Apps
# Build arm64
[ -d "./Apps_arm64" ] && cp -rfu ./Apps_arm64/* ./Apps/
zip AppStore_arm64.zip $(find . -type f -wholename "./*.json" && find . -type f -wholename "./Apps/*.yml" -exec grep -rlPz 'x-casaos:\s*\n\s*architectures:[\n\s\w-#]*- arm64\s*\n' {} \;)
arm64_count=$(find . -type f -wholename "./Apps/*.yml" -exec grep -rlPz 'x-casaos:\s*\n\s*architectures:[\n\s\w-#]*- arm64\s*\n' {} \; | wc -l)
git checkout -- ./Apps && git clean -df ./Apps
# Build amd64
[ -d "./Apps_amd64" ] && cp -rfu ./Apps_amd64/* ./Apps/
zip AppStore_amd64.zip $(find . -type f -wholename "./*.json" && find . -type f -wholename "./Apps/*.yml" -exec grep -rlPz 'x-casaos:\s*\n\s*architectures:[\n\s\w-#]*- amd64\s*\n' {} \;)
amd64_count=$(find . -type f -wholename "./Apps/*.yml" -exec grep -rlPz 'x-casaos:\s*\n\s*architectures:[\n\s\w-#]*- amd64\s*\n' {} \; | wc -l)
echo "app_counts=universal($universal_count), arm($arm_count), arm64($arm64_count), amd64($amd64_count)" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload New Release
uses: softprops/action-gh-release@v2
with:
files: |
AppStore.zip
AppStore_arm.zip
AppStore_arm64.zip
AppStore_amd64.zip
tag_name: new
name: "v${{ steps.get_commit_messages.outputs.release_date }}"
draft: false
prerelease: false
body: "## What's Changed\n\n${{ steps.get_commit_messages.outputs.commits }}\n\n📊 **App Counts:** ${{ steps.create_release.outputs.app_counts }}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload to OSS
id: upload_to_oss
uses: tvrcgo/upload-to-oss@master
with:
key-id: ${{ secrets.OSS_KEY_ID }}
key-secret: ${{ secrets.OSS_KEY_SECRET }}
endpoint: ${{ secrets.OSS_ENDPOINT }}
bucket: ${{ secrets.OSS_BUCKET }}
assets: |
AppStore.zip:Cp0204-AppStore-Play.zip
AppStore_arm.zip:Cp0204-AppStore-Play-arm.zip
AppStore_arm64.zip:Cp0204-AppStore-Play-arm64.zip
AppStore_amd64.zip:Cp0204-AppStore-Play-amd64.zip