mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-12-16 20:17:10 +08:00
[ci] append build date to artifact names and write download URLs to version.json
This commit is contained in:
78
.github/workflows/build.yml
vendored
78
.github/workflows/build.yml
vendored
@@ -35,12 +35,14 @@ jobs:
|
|||||||
id: set_deb_version
|
id: set_deb_version
|
||||||
run: |
|
run: |
|
||||||
SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-7)
|
SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-7)
|
||||||
|
BUILD_DATE=$(date +%Y%m%d)
|
||||||
if [[ ! "${VERSION_NUM}" =~ ^[0-9] ]]; then
|
if [[ ! "${VERSION_NUM}" =~ ^[0-9] ]]; then
|
||||||
LEGAL_VERSION="0.0.0-${VERSION_NUM}-${SHORT_SHA}"
|
LEGAL_VERSION="v0.0.0-${VERSION_NUM}-${BUILD_DATE}-${SHORT_SHA}"
|
||||||
else
|
else
|
||||||
LEGAL_VERSION="${VERSION_NUM}-${SHORT_SHA}"
|
LEGAL_VERSION="v${VERSION_NUM}-${BUILD_DATE}-${SHORT_SHA}"
|
||||||
fi
|
fi
|
||||||
echo "LEGAL_VERSION=${LEGAL_VERSION}" >> $GITHUB_ENV
|
echo "LEGAL_VERSION=${LEGAL_VERSION}" >> $GITHUB_ENV
|
||||||
|
echo "BUILD_DATE=${BUILD_DATE}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -99,12 +101,14 @@ jobs:
|
|||||||
id: set_deb_version
|
id: set_deb_version
|
||||||
run: |
|
run: |
|
||||||
SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-7)
|
SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-7)
|
||||||
|
BUILD_DATE=$(date +%Y%m%d)
|
||||||
if [[ ! "${VERSION_NUM}" =~ ^[0-9] ]]; then
|
if [[ ! "${VERSION_NUM}" =~ ^[0-9] ]]; then
|
||||||
LEGAL_VERSION="0.0.0-${VERSION_NUM}-${SHORT_SHA}"
|
LEGAL_VERSION="v0.0.0-${VERSION_NUM}-${BUILD_DATE}-${SHORT_SHA}"
|
||||||
else
|
else
|
||||||
LEGAL_VERSION="${VERSION_NUM}-${SHORT_SHA}"
|
LEGAL_VERSION="v${VERSION_NUM}-${BUILD_DATE}-${SHORT_SHA}"
|
||||||
fi
|
fi
|
||||||
echo "LEGAL_VERSION=${LEGAL_VERSION}" >> $GITHUB_ENV
|
echo "LEGAL_VERSION=${LEGAL_VERSION}" >> $GITHUB_ENV
|
||||||
|
echo "BUILD_DATE=${BUILD_DATE}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -160,9 +164,11 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
VERSION="${GITHUB_REF##*/}"
|
VERSION="${GITHUB_REF##*/}"
|
||||||
SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-7)
|
SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-7)
|
||||||
VERSION_NUM="${VERSION#v}-${SHORT_SHA}"
|
BUILD_DATE=$(date +%Y%m%d)
|
||||||
|
VERSION_NUM="v${VERSION#v}-${BUILD_DATE}-${SHORT_SHA}"
|
||||||
echo "VERSION_NUM=${VERSION_NUM}" >> $GITHUB_ENV
|
echo "VERSION_NUM=${VERSION_NUM}" >> $GITHUB_ENV
|
||||||
echo "VERSION_NUM=${VERSION_NUM}"
|
echo "VERSION_NUM=${VERSION_NUM}"
|
||||||
|
echo "BUILD_DATE=${BUILD_DATE}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Cache xmake dependencies
|
- name: Cache xmake dependencies
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
@@ -223,7 +229,9 @@ jobs:
|
|||||||
$version = $version -replace '^v', ''
|
$version = $version -replace '^v', ''
|
||||||
$version = $version -replace '/', '-'
|
$version = $version -replace '/', '-'
|
||||||
$SHORT_SHA = $env:GITHUB_SHA.Substring(0,7)
|
$SHORT_SHA = $env:GITHUB_SHA.Substring(0,7)
|
||||||
echo "VERSION_NUM=$version-$SHORT_SHA" >> $env:GITHUB_ENV
|
$BUILD_DATE = Get-Date -Format "yyyyMMdd"
|
||||||
|
echo "VERSION_NUM=v$version-$BUILD_DATE-$SHORT_SHA" >> $env:GITHUB_ENV
|
||||||
|
echo "BUILD_DATE=$BUILD_DATE" >> $env:GITHUB_ENV
|
||||||
|
|
||||||
- name: Cache xmake dependencies
|
- name: Cache xmake dependencies
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
@@ -292,7 +300,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
xmake f --CROSSDESK_VERSION=${{ env.VERSION_NUM }} -y
|
xmake f --CROSSDESK_VERSION=${{ env.VERSION_NUM }} -y
|
||||||
xmake b -vy crossdesk
|
xmake b -vy crossdesk
|
||||||
|
|
||||||
- name: Decode and save certificate
|
- name: Decode and save certificate
|
||||||
shell: powershell
|
shell: powershell
|
||||||
run: |
|
run: |
|
||||||
@@ -332,8 +340,14 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
VERSION="${GITHUB_REF##*/}"
|
VERSION="${GITHUB_REF##*/}"
|
||||||
SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-7)
|
SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-7)
|
||||||
VERSION_NUM="${VERSION#v}-${SHORT_SHA}"
|
BUILD_DATE=$(date +%Y%m%d)
|
||||||
|
BUILD_DATE_ISO=$(date +%Y-%m-%d)
|
||||||
|
VERSION_NUM="v${VERSION#v}-${BUILD_DATE}-${SHORT_SHA}"
|
||||||
|
VERSION_ONLY="${VERSION#v}"
|
||||||
echo "VERSION_NUM=${VERSION_NUM}" >> $GITHUB_OUTPUT
|
echo "VERSION_NUM=${VERSION_NUM}" >> $GITHUB_OUTPUT
|
||||||
|
echo "VERSION_ONLY=${VERSION_ONLY}" >> $GITHUB_OUTPUT
|
||||||
|
echo "BUILD_DATE=${BUILD_DATE}" >> $GITHUB_OUTPUT
|
||||||
|
echo "BUILD_DATE_ISO=${BUILD_DATE_ISO}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Rename artifacts
|
- name: Rename artifacts
|
||||||
run: |
|
run: |
|
||||||
@@ -387,17 +401,43 @@ jobs:
|
|||||||
remote_key: ${{ secrets.SERVER_KEY }}
|
remote_key: ${{ secrets.SERVER_KEY }}
|
||||||
|
|
||||||
- name: Generate version.json
|
- name: Generate version.json
|
||||||
run: |
|
run: |
|
||||||
echo "{" > version.json
|
cat > version.json << EOF
|
||||||
echo " \"latest_version\": \"${{ steps.version.outputs.VERSION_NUM }}\"" >> version.json
|
{
|
||||||
echo "}" >> version.json cat version.json
|
"version": "${{ steps.version.outputs.VERSION_ONLY }}",
|
||||||
|
"releaseDate": "${{ steps.version.outputs.BUILD_DATE_ISO }}",
|
||||||
|
"downloads": {
|
||||||
|
"windows-x64": {
|
||||||
|
"url": "https://downloads.crossdesk.cn/crossdesk-win-x64-${{ steps.version.outputs.VERSION_NUM }}.exe",
|
||||||
|
"filename": "crossdesk-win-x64-${{ steps.version.outputs.VERSION_NUM }}.exe"
|
||||||
|
},
|
||||||
|
"macos-x64": {
|
||||||
|
"url": "https://downloads.crossdesk.cn/crossdesk-macos-x64-${{ steps.version.outputs.VERSION_NUM }}.pkg",
|
||||||
|
"filename": "crossdesk-macos-x64-${{ steps.version.outputs.VERSION_NUM }}.pkg"
|
||||||
|
},
|
||||||
|
"macos-arm64": {
|
||||||
|
"url": "https://downloads.crossdesk.cn/crossdesk-macos-arm64-${{ steps.version.outputs.VERSION_NUM }}.pkg",
|
||||||
|
"filename": "crossdesk-macos-arm64-${{ steps.version.outputs.VERSION_NUM }}.pkg"
|
||||||
|
},
|
||||||
|
"linux-amd64": {
|
||||||
|
"url": "https://downloads.crossdesk.cn/crossdesk-linux-amd64-${{ steps.version.outputs.VERSION_NUM }}.deb",
|
||||||
|
"filename": "crossdesk-linux-amd64-${{ steps.version.outputs.VERSION_NUM }}.deb"
|
||||||
|
},
|
||||||
|
"linux-arm64": {
|
||||||
|
"url": "https://downloads.crossdesk.cn/crossdesk-linux-arm64-${{ steps.version.outputs.VERSION_NUM }}.deb",
|
||||||
|
"filename": "crossdesk-linux-arm64-${{ steps.version.outputs.VERSION_NUM }}.deb"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
cat version.json
|
||||||
|
|
||||||
- name: Upload version.json to server
|
- name: Upload version.json to server
|
||||||
uses: burnett01/rsync-deployments@5.2
|
uses: burnett01/rsync-deployments@5.2
|
||||||
with:
|
with:
|
||||||
switches: -avzr --delete
|
switches: -avzr --delete
|
||||||
path: version.json
|
path: version.json
|
||||||
remote_path: /var/www/html/version/
|
remote_path: /var/www/html/version/
|
||||||
remote_host: ${{ secrets.SERVER_HOST }}
|
remote_host: ${{ secrets.SERVER_HOST }}
|
||||||
remote_user: ${{ secrets.SERVER_USER }}
|
remote_user: ${{ secrets.SERVER_USER }}
|
||||||
remote_key: ${{ secrets.SERVER_KEY }}
|
remote_key: ${{ secrets.SERVER_KEY }}
|
||||||
|
|||||||
51
.github/workflows/update-pages.yml
vendored
51
.github/workflows/update-pages.yml
vendored
@@ -1,51 +0,0 @@
|
|||||||
name: Update GitHub Pages Downloads
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- "v*"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
update-pages:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout CrossDesk repo
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set version number
|
|
||||||
id: version
|
|
||||||
run: |
|
|
||||||
SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-7)
|
|
||||||
VERSION_NUM="${GITHUB_REF##*/}"
|
|
||||||
VERSION_NUM="${VERSION_NUM#v}-${SHORT_SHA}"
|
|
||||||
echo "VERSION_NUM=${VERSION_NUM}" >> $GITHUB_ENV
|
|
||||||
echo "VERSION_NUM=${VERSION_NUM}" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Checkout Pages repo
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: kunkundi/kunkundi.github.io
|
|
||||||
token: ${{ secrets.GH_PAGES_PAT }}
|
|
||||||
path: pages
|
|
||||||
|
|
||||||
- name: Update download links
|
|
||||||
run: |
|
|
||||||
cd pages
|
|
||||||
echo "Updating download links to ${VERSION_NUM}"
|
|
||||||
sed -E -i "s/crossdesk-win-x64-[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9._-]+)?\.exe/crossdesk-win-x64-${VERSION_NUM}.exe/g" index.html
|
|
||||||
sed -E -i "s/crossdesk-macos-x64-[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9._-]+)?\.pkg/crossdesk-macos-x64-${VERSION_NUM}.pkg/g" index.html
|
|
||||||
sed -E -i "s/crossdesk-macos-arm64-[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9._-]+)?\.pkg/crossdesk-macos-arm64-${VERSION_NUM}.pkg/g" index.html
|
|
||||||
sed -E -i "s/crossdesk-linux-amd64-[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9._-]+)?\.deb/crossdesk-linux-amd64-${VERSION_NUM}.deb/g" index.html
|
|
||||||
sed -E -i "s/crossdesk-linux-arm64-[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9._-]+)?\.deb/crossdesk-linux-arm64-${VERSION_NUM}.deb/g" index.html
|
|
||||||
git diff index.html || true
|
|
||||||
|
|
||||||
- name: Commit & Push changes
|
|
||||||
run: |
|
|
||||||
cd pages
|
|
||||||
git config user.name "github-actions[bot]"
|
|
||||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
||||||
git add index.html
|
|
||||||
git commit -m "Update download links to v${VERSION_NUM}" || echo "No changes to commit"
|
|
||||||
git push origin main
|
|
||||||
env:
|
|
||||||
VERSION_NUM: ${{ env.VERSION_NUM }}
|
|
||||||
Reference in New Issue
Block a user