-
Notifications
You must be signed in to change notification settings - Fork 2
138 lines (125 loc) · 5.4 KB
/
figma-export.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
name: 🚀 Release (Figma)
on:
workflow_dispatch:
inputs:
brand:
type: choice
description: Library to export
required: true
default: "all"
options:
- all
- telefonica
- o2
- o2-new
- blau
- vivo
draft:
type: boolean
default: true
description: Draft PR
env:
TELEFONICA_FIGMA_ID: JHuzksh01yxExMeMQBvymq
O2_FIGMA_ID: wHTqJ7KDhGKrNSNpmMb9nW
O2_NEW_FIGMA_ID: M9q1Iu9zuoQtoIktd915gj
BLAU_FIGMA_ID: 6TYIfq6EZJl7NcSbbYAo79
VIVO_FIGMA_ID: IrcHGIgsF5Cq4ZX1LRhuis
MISTICA_ICONS_FILE_URL: https://www.figma.com/file/JHuzksh01yxExMeMQBvymq/M%C3%ADstica-Icons?node-id=0%3A71&t=hqGKHvCEvRHET7YC-0
O2_FILE_URL: https://www.figma.com/file/wHTqJ7KDhGKrNSNpmMb9nW/?node-id=611%3A3298
O2_NEW_FILE_URL: https://www.figma.com/design/M9q1Iu9zuoQtoIktd915gj/O2-New?node-id=3962-2&t=ute0n3XeLMeJ2cUO-0
BLAU_FILE_URL: https://www.figma.com/file/6TYIfq6EZJl7NcSbbYAo79/Blau?node-id=0%3A1
VIVO_FILE_URL: https://www.figma.com/file/IrcHGIgsF5Cq4ZX1LRhuis/Vivo-New-(Beta)?type=design&node-id=2625-199
jobs:
export-icons:
runs-on: ubuntu-latest
strategy:
matrix:
brand: [telefonica, o2, o2-new, blau, vivo]
steps:
- uses: actions/checkout@v3
- name: Install packages
run: |
npm install figma-export-icons --save
sudo apt-get install -y librsvg2-bin libimage-exiftool-perl qpdf
- name: Checkout branch or create new one
run: |
git fetch
if git branch -a | grep origin/import-figma-icons; then
git checkout import-figma-icons
else
git checkout -b import-figma-icons
fi
- name: Set brand-specific environment variables
run: |
echo "BRAND=${{ matrix.brand }}" >> $GITHUB_ENV
case ${{ matrix.brand }} in
telefonica)
echo "FIGMA_ID=${{ env.TELEFONICA_FIGMA_ID }}" >> $GITHUB_ENV
echo "FRAMES=Filled Regular Light" >> $GITHUB_ENV
echo "PATHS=telefonica/filled telefonica/regular telefonica/light" >> $GITHUB_ENV
;;
o2)
echo "FIGMA_ID=${{ env.O2_FIGMA_ID }}" >> $GITHUB_ENV
echo "FRAMES=Filled Regular Light" >> $GITHUB_ENV
echo "PATHS=o2/filled o2/regular o2/light" >> $GITHUB_ENV
;;
o2-new)
echo "FIGMA_ID=${{ env.O2_NEW_FIGMA_ID }}" >> $GITHUB_ENV
echo "FRAMES=Filled Regular Light" >> $GITHUB_ENV
echo "PATHS=o2-new/filled o2-new/regular o2-new/light" >> $GITHUB_ENV
;;
blau)
echo "FIGMA_ID=${{ env.BLAU_FIGMA_ID }}" >> $GITHUB_ENV
echo "FRAMES=Filled Regular" >> $GITHUB_ENV
echo "PATHS=blau/filled blau/regular" >> $GITHUB_ENV
;;
vivo)
echo "FIGMA_ID=${{ env.VIVO_FIGMA_ID }}" >> $GITHUB_ENV
echo "FRAMES=Filled Regular Light" >> $GITHUB_ENV
echo "PATHS=vivo-new/filled vivo-new/regular vivo-new/light" >> $GITHUB_ENV
;;
esac
- name: Generate icon config
run: |
IFS=' ' read -r -a frames <<< "$FRAMES"
IFS=' ' read -r -a paths <<< "$PATHS"
for i in ${!frames[@]}; do
sed -e "s/YOUR_PERSONAL_TOKEN/${{secrets.FIGMA_TOKEN}}/" -e "s/FILE_ID/${FIGMA_ID}/" -e "s/ICON_FRAME/${frames[i]}/" -e "s|ICON_PATH|icons/${paths[i]}|g" figma-export-icons.template.json > ${paths[i]}.json
done
- name: Export icons
run: |
IFS=' ' read -r -a paths <<< "$PATHS"
for i in ${!paths[@]}; do
npm run export-${paths[i]//\//-}
done
- name: Install SVGO & convert
run: |
yarn global add svgo
svgo -f icons -r -o icons
- name: Convert to PDF
run: |
sudo apt-get update && sudo apt-get install -y mat2
for i in $(find icons -type f -name "*.svg"); do rsvg-convert -f pdf -o ${i%.*}.pdf $i; done
for i in $(find icons -type f -name "*.pdf"); do echo $i && exiftool -overwrite_original_in_place -all:all= $i > /dev/null 2>&1 && qpdf --replace-input --deterministic-id $i; done # remove PDF metadata
- name: Readme generator
run: sudo python3 .github/md-generator/generate_markdown.py icons
- name: Commit & Push
env:
GITHUB_TOKEN: ${{ secrets.NOVUM_PRIVATE_REPOS }}
run: |
git config user.name "github-actions"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add .
git commit -m "Figma icons updated"
git push origin import-figma-icons
- name: Create Pull-Request
uses: repo-sync/pull-request@v2
with:
source_branch: import-figma-icons
destination_branch: "production"
pr_title: "Update ${{ matrix.brand }} icons"
pr_body: |
New version of icons exported from [Mistica Icons](${{ env.MISTICA_ICONS_FILE_URL }}), [O2](${{ env.O2_FILE_URL }}), [O2-new](${{ env.O2_NEW_FILE_URL }}), [Blau](${{ env.BLAU_FILE_URL }}), and [Vivo](${{ env.VIVO_FILE_URL }}).
- [ ] [Review readme import-figma-icons](https://github.com/Telefonica/mistica-icons/tree/import-figma-icons)
pr_draft: ${{ github.event.inputs.draft }}
github_token: ${{ secrets.NOVUM_PRIVATE_REPOS }}