@@ -2,90 +2,117 @@ name: Release to Github and artifact
22
33on :
44 workflow_dispatch :
5+ inputs :
6+ library_version :
7+ description : Optional legacy release version tag used for the versioned library zip and GitHub Release
8+ required : false
9+ type : string
10+ from_ref :
11+ description : Optional git ref used to calculate apps-delta
12+ required : false
13+ type : string
514 repository_dispatch :
615 types : [custom_event]
716
817jobs :
918 release :
1019 name : Release to github and artifact
1120 runs-on : ubuntu-latest
12- env :
13- CI : false
14- appname : library
1521 steps :
16- - uses : actions/checkout@v3
22+ - uses : actions/checkout@v4
1723 name : Check out code
1824
19- - name : Version convert
20- id : convert_version
25+ - name : Resolve release inputs
26+ id : resolve_inputs
2127 run : |
22- curl https://raw.githubusercontent.com/Websoft9/websoft9/main/docker/apphub/Dockerfile -o Dockerfile
23-
24- library_tag=$(grep 'ARG LIBRARY_VERSION' "Dockerfile" | cut -d'"' -f2 | xargs)
25- apphub_tag=$(grep 'LABEL version' "Dockerfile" | cut -d'"' -f2 | xargs)
26-
27- if [[ "$apphub_tag" == *"-"* ]]; then
28- suffix="${apphub_tag#*-}"
29- library_tag_gh="${library_tag}-${suffix}"
30- echo "CHANNEL=dev" >> $GITHUB_ENV
31- else
32- library_tag_gh=$library_tag
33- echo "CHANNEL=release" >> $GITHUB_ENV
28+ version="${{ inputs.library_version }}"
29+ if [[ -z "$version" ]]; then
30+ version="${{ github.event.client_payload.library_version }}"
31+ fi
32+ if [[ -z "$version" ]]; then
33+ version="$(date -u +%Y.%m.%d.%H%M%S)"
3434 fi
35+ from_ref="${{ inputs.from_ref }}"
36+ if [[ -z "$from_ref" ]]; then
37+ from_ref="${{ github.event.client_payload.from_ref }}"
38+ fi
39+ echo "library_version=$version" >> "$GITHUB_OUTPUT"
40+ echo "from_ref=$from_ref" >> "$GITHUB_OUTPUT"
41+
42+ - name : Set up Python
43+ uses : actions/setup-python@v5
44+ with :
45+ python-version : ' 3.11'
3546
36- echo "LIBRARY_TAG=$library_tag" >> $GITHUB_ENV
37- echo "LIBRARY_TAG_GH=$library_tag_gh" >> $GITHUB_ENV
47+ - name : Install Python dependencies
48+ run : |
49+ python -m pip install --upgrade pip
50+ pip install requests
3851
39- jq --arg version "$library_tag_gh" '.Version = $version' library.json > temp.json && mv temp.json library.json
52+ - name : Fetch catalog inputs
53+ env :
54+ CONTENTFUL_GRAPHQL_TOKEN : ${{ secrets.CONTENTFUL_GRAPHQLTOKEN }}
55+ run : |
56+ python build/fetch_catalog.py \
57+ --channel release \
58+ --output-dir dist/catalog-source
4059
41- - name : Create Zip Archive for artifact
60+ - name : Build legacy and v2 artifacts
4261 run : |
43- mkdir ${{ env.appname }} artifacts
44- cp -r apps ${{ env.appname }}
45- cp -r docs ${{ env.appname }}
46- cp -r template ${{ env.appname }}
47- cp *.md ${{ env.appname }}
48- cp ${{ env.appname }}.json ${{ env.appname }}
49- cp ${{ env.appname }}.json CHANGELOG.md artifacts
50- zip -r ${{ env.appname }}-${{ env.LIBRARY_TAG }}.zip ${{ env.appname }}
51- cp ${{ env.appname }}-${{ env.LIBRARY_TAG }}.zip artifacts
52- cp artifacts/${{ env.appname }}-${{ env.LIBRARY_TAG }}.zip artifacts/${{ env.appname }}-latest.zip
62+ args=(
63+ --channel release
64+ --output-dir dist/publish
65+ --catalog-source-dir dist/catalog-source
66+ --library-version " ${{ steps.resolve_inputs.outputs.library_version }}"
67+ )
68+ if [[ -n " ${{ steps.resolve_inputs.outputs.from_ref }}" ]]; then
69+ args+=(--from-ref " ${{ steps.resolve_inputs.outputs.from_ref }}")
70+ fi
71+ python build/library_publish.py "${args[@]}"
5372
54- - name : Upload To cloudflare r2
73+ - name : Upload workflow artifact
74+ uses : actions/upload-artifact@v4
75+ with :
76+ name : publish-release
77+ path : dist/publish
78+
79+ - name : Upload legacy library to Cloudflare R2
80+ uses : ryand56/r2-upload-action@latest
81+ with :
82+ r2-account-id : ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
83+ r2-access-key-id : ${{ secrets.CLOUDFLARE_R2_SECRET_ID }}
84+ r2-secret-access-key : ${{ secrets.CLOUDFLARE_R2_SECRET_KEY }}
85+ r2-bucket : artifact
86+ source-dir : dist/publish/legacy/release/library
87+ destination-dir : ./release/websoft9/plugin/library
88+
89+ - name : Upload legacy media to Cloudflare R2
5590 uses : ryand56/r2-upload-action@latest
5691 with :
5792 r2-account-id : ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
5893 r2-access-key-id : ${{ secrets.CLOUDFLARE_R2_SECRET_ID }}
5994 r2-secret-access-key : ${{ secrets.CLOUDFLARE_R2_SECRET_KEY }}
6095 r2-bucket : artifact
61- source-dir : artifacts
62- destination-dir : ./${{ env.CHANNEL }} /websoft9/plugin/${{ env.appname }}
96+ source-dir : dist/publish/legacy/release/media
97+ destination-dir : ./release /websoft9/plugin/media
6398
6499 - name : Purge Cloudflare Cache
65100 uses : jakejarvis/cloudflare-purge-action@master
66101 env :
67102 CLOUDFLARE_ZONE : ${{ secrets.CLOUDFLARE_ZONE_ID }}
68103 CLOUDFLARE_TOKEN : ${{ secrets.CLOUDFLARE_API_TOKEN }}
69- PURGE_URLS : ' ["https://artifact.websoft9.com/${{ env.CHANNEL }} /websoft9/plugin/library/library-latest.zip"]'
104+ PURGE_URLS : ' ["https://artifact.websoft9.com/release /websoft9/plugin/library/library-latest.zip","https://artifact.websoft9.com/release/websoft9/plugin/media/media .zip"]'
70105
71106 - name : Create Github Release from code
72107 uses : softprops/action-gh-release@v1
73108 with :
74109 files : |
75- ${{ env.appname }} .json
76- tag_name : ${{ env.LIBRARY_TAG_GH }}
77- name : ${{ env.LIBRARY_TAG_GH }}
110+ dist/publish/legacy/release/library/library .json
111+ tag_name : ${{ steps.resolve_inputs.outputs.library_version }}
112+ name : ${{ steps.resolve_inputs.outputs.library_version }}
78113 draft : false
79114 prerelease : false
80115
81- - name : Trigger websoft9/json2md.yml workflow
82- uses : benc-uk/workflow-dispatch@v1
83- with :
84- workflow : json2md.yml
85- repo : websoft9/doc.websoft9.com
86- ref : dev
87- token : ${{secrets.MYGITHUB_ADMIN_TOKEN}}
88-
89116 pages :
90117 name : Build Github Pages
91118 permissions :
0 commit comments