@@ -2,6 +2,15 @@ name: Compile the offline installation package
22
33# Controls when the workflow will run
44on :
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 :
1423 default : latest
1524
1625jobs :
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
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