1- name : Debian Package Release
1+ name : Debian Package Build/Publish/ Release
22
33on :
4+ pull_request :
5+ branches : [ main ]
6+ push :
7+ branches : [ main ]
48 release :
59 types :
610 - published
711
12+ permissions :
13+ id-token : write
14+
815jobs :
916 build :
10- name : release
1117 runs-on : ubuntu-latest
1218 steps :
1319 - uses : actions/checkout@v3
2026 notimportant
2127 tags : |
2228 type=pep440,pattern={{version}}
23- type=ref,event=branch,prefix=0.0.0-
24- type=ref,event=pr,prefix=0.0.0-pr-
29+ type=ref,event=branch,prefix=0.0.0-,suffix=-{{sha}}
30+ type=ref,event=pr,prefix=0.0.0-pr-,suffix=-{{sha}}
2531 type=sha,prefix=0.0.0-sha-
2632
2733 - uses : jiro4989/build-deb-action@v2
@@ -35,14 +41,24 @@ jobs:
3541 desc : |
3642 Unifi IP Rule Monitor for Tailscale
3743
44+ - name : Upload Artifact
45+ if : github.event_name != 'release'
46+ uses : actions/upload-artifact@v3
47+ with :
48+ name : debfiles
49+ path : |
50+ **/*.deb
51+
3852 - name : Get Release Asset
53+ if : github.event_name == 'release'
3954 id : get_release_asset
4055 run : |-
4156 echo "asset_path=$(echo ./*_all.deb)" >> $GITHUB_OUTPUT
4257 echo "asset_name=$(basename ./*_all.deb)" >> $GITHUB_OUTPUT
4358 echo "asset_content_type=$(file --brief --mime-type ./*_all.deb)" >> $GITHUB_OUTPUT
44-
59+
4560 - name : Upload Release Asset
61+ if : github.event_name == 'release'
4662 id : upload-release-asset
4763 uses : actions/upload-release-asset@v1
4864 env :
5167 upload_url : ${{ github.event.release.upload_url }}
5268 asset_path : ${{ steps.get_release_asset.outputs.asset_path }}
5369 asset_name : ${{ steps.get_release_asset.outputs.asset_name }}
54- asset_content_type : ${{ steps.get_release_asset.outputs.asset_content_type }}
70+ asset_content_type : ${{ steps.get_release_asset.outputs.asset_content_type }}
71+
72+ - name : Auth to GCP for pushing artifacts
73+ uses : google-github-actions/auth@v1
74+ with :
75+ workload_identity_provider : ${{ vars.GCP_WORKLOAD_IDENTITY_PROVIDER }}
76+ service_account : ${{ vars.GCP_BUILDS_SERVICE_ACCOUNT }}
77+ project_id : ${{ vars.GCP_BUILDS_PROJECT_ID }}
78+ create_credentials_file : true
79+ export_environment_variables : true
80+
81+ - name : Push to artifact registry
82+ run : |
83+ gcloud config set artifacts/repository unifi-os
84+ gcloud config set artifacts/location us
85+ gcloud artifacts apt upload unifi-os --source=unifi-tailscale-ip-rule-monitor_${{ steps.meta.outputs.version}}_all.deb
0 commit comments