Skip to content

Commit 3cc801c

Browse files
authored
ci: update ci (#76)
1 parent 5d54643 commit 3cc801c

File tree

1 file changed

+59
-9
lines changed

1 file changed

+59
-9
lines changed

.github/workflows/package.yaml

Lines changed: 59 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@ name: Compile the offline installation package
22

33
# Controls when the workflow will run
44
on:
5+
# Trigger when release workflow completes successfully
6+
workflow_run:
7+
workflows: ["Publish Public coScout"]
8+
types:
9+
- completed
10+
branches:
11+
- main
12+
- master
13+
514
# Allows you to run this workflow manually from the Actions tab
615
workflow_dispatch:
716
inputs:
@@ -14,8 +23,49 @@ on:
1423
default: latest
1524

1625
jobs:
26+
# Check if the workflow should run based on the release workflow result
27+
check-release-status:
28+
runs-on: ubuntu-latest
29+
if: ${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') }}
30+
outputs:
31+
should_run: ${{ steps.check.outputs.should_run }}
32+
cos_version: ${{ steps.check.outputs.cos_version }}
33+
steps:
34+
- name: Checkout repository
35+
if: ${{ github.event_name == 'workflow_run' }}
36+
uses: actions/checkout@v4
37+
with:
38+
fetch-depth: 0
39+
ref: ${{ github.event.workflow_run.head_sha }}
40+
41+
- name: Check release status and determine version
42+
id: check
43+
run: |
44+
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
45+
echo "should_run=true" >> "$GITHUB_OUTPUT"
46+
echo "cos_version=${{ inputs.cosVersion }}" >> "$GITHUB_OUTPUT"
47+
else
48+
# For workflow_run, check if it was a release or prerelease
49+
echo "should_run=true" >> "$GITHUB_OUTPUT"
50+
51+
# Get the version using git describe (same as release workflow)
52+
VERSION=$(git describe --always --tags --abbrev=8 --dirty)
53+
echo "Detected version: $VERSION"
54+
55+
# Check if it's a release version (v1.2.3) or beta (same regex as release workflow)
56+
if echo "$VERSION" | grep -q -E '^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$'; then
57+
echo "This is a release version"
58+
echo "cos_version=latest" >> "$GITHUB_OUTPUT"
59+
else
60+
echo "This is a beta/prerelease version"
61+
echo "cos_version=beta" >> "$GITHUB_OUTPUT"
62+
fi
63+
fi
64+
1765
package-zip-file:
1866
runs-on: ubuntu-latest
67+
needs: check-release-status
68+
if: ${{ needs.check-release-status.outputs.should_run == 'true' }}
1969

2070
steps:
2171
- name: Checkout repository
@@ -26,7 +76,7 @@ jobs:
2676
- name: Build Tar gz file
2777
run: |
2878
chmod +x script/package.sh
29-
script/package.sh --cos_version=${{ inputs.cosVersion }}
79+
script/package.sh --cos_version=${{ needs.check-release-status.outputs.cos_version }}
3080
3181
- name: Upload Tar gz file
3282
uses: tvrcgo/oss-action@master
@@ -36,17 +86,17 @@ jobs:
3686
region: oss-cn-hangzhou
3787
bucket: coscene-download
3888
assets: |
39-
/home/runner/cos_binaries.tar.gz:/coscout/v2/tar/${{ inputs.cosVersion }}/cos_binaries.tar.gz
40-
/home/runner/cos_binaries_arm64.tar.gz:/coscout/v2/tar/${{ inputs.cosVersion }}/cos_binaries_arm64.tar.gz
41-
/home/runner/cos_binaries_arm.tar.gz:/coscout/v2/tar/${{ inputs.cosVersion }}/cos_binaries_arm.tar.gz
42-
/home/runner/cos_binaries_amd64.tar.gz:/coscout/v2/tar/${{ inputs.cosVersion }}/cos_binaries_amd64.tar.gz
89+
/home/runner/cos_binaries.tar.gz:/coscout/v2/tar/${{ needs.check-release-status.outputs.cos_version }}/cos_binaries.tar.gz
90+
/home/runner/cos_binaries_arm64.tar.gz:/coscout/v2/tar/${{ needs.check-release-status.outputs.cos_version }}/cos_binaries_arm64.tar.gz
91+
/home/runner/cos_binaries_arm.tar.gz:/coscout/v2/tar/${{ needs.check-release-status.outputs.cos_version }}/cos_binaries_arm.tar.gz
92+
/home/runner/cos_binaries_amd64.tar.gz:/coscout/v2/tar/${{ needs.check-release-status.outputs.cos_version }}/cos_binaries_amd64.tar.gz
4393
4494
- name: Upload to S3
4595
run: |
46-
aws s3 cp /home/runner/cos_binaries.tar.gz s3://coscene-download/coscout/v2/tar/${{ inputs.cosVersion }}/cos_binaries.tar.gz
47-
aws s3 cp /home/runner/cos_binaries_arm64.tar.gz s3://coscene-download/coscout/v2/tar/${{ inputs.cosVersion }}/cos_binaries_arm64.tar.gz
48-
aws s3 cp /home/runner/cos_binaries_arm.tar.gz s3://coscene-download/coscout/v2/tar/${{ inputs.cosVersion }}/cos_binaries_arm.tar.gz
49-
aws s3 cp /home/runner/cos_binaries_amd64.tar.gz s3://coscene-download/coscout/v2/tar/${{ inputs.cosVersion }}/cos_binaries_amd64.tar.gz
96+
aws s3 cp /home/runner/cos_binaries.tar.gz s3://coscene-download/coscout/v2/tar/${{ needs.check-release-status.outputs.cos_version }}/cos_binaries.tar.gz
97+
aws s3 cp /home/runner/cos_binaries_arm64.tar.gz s3://coscene-download/coscout/v2/tar/${{ needs.check-release-status.outputs.cos_version }}/cos_binaries_arm64.tar.gz
98+
aws s3 cp /home/runner/cos_binaries_arm.tar.gz s3://coscene-download/coscout/v2/tar/${{ needs.check-release-status.outputs.cos_version }}/cos_binaries_arm.tar.gz
99+
aws s3 cp /home/runner/cos_binaries_amd64.tar.gz s3://coscene-download/coscout/v2/tar/${{ needs.check-release-status.outputs.cos_version }}/cos_binaries_amd64.tar.gz
50100
env:
51101
AWS_ACCESS_KEY_ID: ${{ secrets.S3_ARTIFACTS_ACCESS_KEY }}
52102
AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_ARTIFACTS_ACCESS_SECRET }}

0 commit comments

Comments
 (0)