mirror of
https://github.com/penpot/penpot.git
synced 2026-09-10 14:09:17 +00:00
✨ Simplify gh-actions workflows
This commit is contained in:
parent
7553d68100
commit
78102210a5
80
.github/workflows/build-bundles.yml
vendored
80
.github/workflows/build-bundles.yml
vendored
@ -3,19 +3,6 @@ name: Build and Upload Penpot Bundles
|
|||||||
on:
|
on:
|
||||||
# Create bundler from manual action
|
# Create bundler from manual action
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
|
||||||
zip_mode:
|
|
||||||
# zip_mode defines how the build artifacts are packaged:
|
|
||||||
# - 'individual': creates one ZIP file per component (frontend, backend, exporter)
|
|
||||||
# - 'all': creates a single ZIP containing all components
|
|
||||||
# - null: for the rest of cases (non-manual events)
|
|
||||||
description: 'Bundle packaging mode'
|
|
||||||
required: false
|
|
||||||
default: 'individual'
|
|
||||||
type: choice
|
|
||||||
options:
|
|
||||||
- individual
|
|
||||||
- all
|
|
||||||
workflow_call:
|
workflow_call:
|
||||||
inputs:
|
inputs:
|
||||||
gh_ref:
|
gh_ref:
|
||||||
@ -39,7 +26,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
ref: ${{ inputs.gh_ref }}
|
ref: ${{ inputs.gh_ref }}
|
||||||
|
|
||||||
- name: Extract somer useful variables
|
- name: Extract some useful variables
|
||||||
id: vars
|
id: vars
|
||||||
run: |
|
run: |
|
||||||
echo "commit_hash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
echo "commit_hash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
||||||
@ -57,70 +44,23 @@ jobs:
|
|||||||
mkdir zips
|
mkdir zips
|
||||||
mv bundles penpot
|
mv bundles penpot
|
||||||
|
|
||||||
- name: Create zip bundles for zip_mode == 'all'
|
- name: Create zip bundles
|
||||||
if: ${{ github.event.inputs.zip_mode == 'all' }}
|
|
||||||
run: |
|
run: |
|
||||||
echo "📦 Packaging Penpot 'all' bundles..."
|
echo "📦 Packaging Penpot bundles..."
|
||||||
zip -r zips/penpot-all-bundles.zip penpot
|
zip -r zips/penpot.zip penpot
|
||||||
|
|
||||||
- name: Create zip bundles for zip_mode != 'all'
|
- name: Upload Penpot bundle to S3
|
||||||
if: ${{ github.event.inputs.zip_mode != 'all' }}
|
|
||||||
run: |
|
run: |
|
||||||
echo "📦 Packaging Penpot 'individual' bundles..."
|
aws s3 cp zips/penpot.zip s3://${{ secrets.S3_BUCKET }}/penpot-${{ steps.vars.outputs.gh_branch}}-latest.zip
|
||||||
zip -r zips/penpot-frontend.zip penpot/frontend
|
aws s3 cp zips/penpot.zip s3://${{ secrets.S3_BUCKET }}/penpot-${{ steps.vars.outputs.commit_hash }}.zip
|
||||||
zip -r zips/penpot-backend.zip penpot/backend
|
|
||||||
zip -r zips/penpot-exporter.zip penpot/exporter
|
|
||||||
|
|
||||||
- name: Upload unified 'all' bundle
|
- name: Notify Mattermost
|
||||||
if: ${{ github.event.inputs.zip_mode == 'all' }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: penpot-all-bundles
|
|
||||||
path: zips/penpot-all-bundles.zip
|
|
||||||
|
|
||||||
- name: Upload individual bundles
|
|
||||||
if: ${{ github.event.inputs.zip_mode != 'all' }}
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: penpot-individual-bundles
|
|
||||||
path: |
|
|
||||||
zips/penpot-frontend.zip
|
|
||||||
zips/penpot-backend.zip
|
|
||||||
zips/penpot-exporter.zip
|
|
||||||
|
|
||||||
- name: Upload unified 'all' bundle to S3
|
|
||||||
if: ${{ github.event.inputs.zip_mode == 'all' }}
|
|
||||||
run: |
|
|
||||||
aws s3 cp zips/penpot-all-bundles.zip s3://${{ secrets.S3_BUCKET }}/penpot-all-bundles-${{ steps.vars.outputs.gh_branch}}.zip
|
|
||||||
aws s3 cp zips/penpot-all-bundles.zip s3://${{ secrets.S3_BUCKET }}/penpot-all-bundles-${{ steps.vars.outputs.commit_hash }}.zip
|
|
||||||
|
|
||||||
- name: Upload 'individual' bundles to S3
|
|
||||||
if: ${{ github.event.inputs.zip_mode != 'all' }}
|
|
||||||
run: |
|
|
||||||
for name in penpot-frontend penpot-backend penpot-exporter; do
|
|
||||||
aws s3 cp zips/${name}.zip s3://${{ secrets.S3_BUCKET }}/${name}-${{ steps.vars.outputs.gh_branch }}-latest.zip
|
|
||||||
aws s3 cp zips/${name}.zip s3://${{ secrets.S3_BUCKET }}/${name}-${{ steps.vars.outputs.commit_hash }}.zip
|
|
||||||
done
|
|
||||||
|
|
||||||
- name: Notify Mattermost about automatic bundles
|
|
||||||
if: github.event_name == 'pull_request'
|
|
||||||
uses: mattermost/action-mattermost-notify@master
|
uses: mattermost/action-mattermost-notify@master
|
||||||
with:
|
with:
|
||||||
MATTERMOST_WEBHOOK_URL: ${{ secrets.MATTERMOST_WEBHOOK }}
|
MATTERMOST_WEBHOOK_URL: ${{ secrets.MATTERMOST_WEBHOOK }}
|
||||||
TEXT: |
|
TEXT: |
|
||||||
📦 *Penpot bundle automatically generated*
|
📦 *New Penpot bundle generated*
|
||||||
📄 PR: ${{ github.event.pull_request.title }}
|
📄 Triggered from ref: `${{ steps.vars.outputs.gh_branch}}`
|
||||||
🔁 From: \`${{ github.head_ref }}\` to \`{{ github.base_ref }}\`
|
|
||||||
🔗 Run: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
||||||
|
|
||||||
- name: Notify Mattermost about manual bundles
|
|
||||||
if: github.event_name == 'workflow_dispatch'
|
|
||||||
uses: mattermost/action-mattermost-notify@master
|
|
||||||
with:
|
|
||||||
MATTERMOST_WEBHOOK_URL: ${{ secrets.MATTERMOST_WEBHOOK }}
|
|
||||||
TEXT: |
|
|
||||||
📦 *Penpot bundle manually generated*
|
|
||||||
📄 Triggered from branch: `${{ github.ref_name}}`
|
|
||||||
🔗 Run: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
🔗 Run: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||||||
|
|
||||||
- name: Print artifact summary URL
|
- name: Print artifact summary URL
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user