-
Notifications
You must be signed in to change notification settings - Fork 3
132 lines (112 loc) · 3.52 KB
/
ci.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
name: ci
on:
push:
branches:
- master
pull_request:
workflow_dispatch:
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-14, macos-13]
include:
- { os: macos-14, arch: arm64 }
- { os: macos-13, arch: x86_64 }
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
brew install \
extra-cmake-modules \
ninja \
go
wget https://github.com/fcitx-contrib/fcitx5-macos-prebuilder/releases/download/latest/marisa-${{ matrix.arch }}.tar.bz2
sudo tar xjvf marisa-${{ matrix.arch }}.tar.bz2 -C /usr/local bin/marisa-build
pip install dirhash
- name: Download and install Fcitx5.app
run: |
wget https://github.com/fcitx-contrib/fcitx5-macos/releases/download/latest/Fcitx5-${{ matrix.arch }}.tar.bz2
sudo tar xjvf Fcitx5-${{ matrix.arch }}.tar.bz2 -C "/Library/Input Methods"
- name: Build all
run: ./all.sh ${{ matrix.arch }}
- name: Upload arch-specific artifact
uses: actions/upload-artifact@v4
with:
name: artifact-${{ matrix.arch }}
path: |
build/*-${{ matrix.arch }}.tar.bz2
- name: Upload arch-unspecific artifact
if: ${{ matrix.os == 'macos-14' }}
uses: actions/upload-artifact@v4
with:
name: artifact
path: |
build/*-any.tar.bz2
- name: Check validity
run: ./check-validity.sh
- name: Generate meta-${{ matrix.arch }}.json
run: |
python generate-meta.py
- name: Upload meta-${{ matrix.arch }}.json
uses: actions/upload-artifact@v4
with:
name: meta-${{ matrix.arch }}.json
path: |
meta-${{ matrix.arch }}.json
- name: Setup tmate session
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3
compare:
needs: build
if: ${{ github.ref != 'refs/heads/master' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v4
with:
merge-multiple: true
- name: Compare
run: python compare-arches.py > summary.md
- name: Find comment
uses: peter-evans/find-comment@v3
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: "Arch comparison"
- name: Create or update comment
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ github.event.pull_request.number }}
comment-id: ${{ steps.fc.outputs.comment-id }}
body-path: summary.md
edit-mode: replace
release:
needs: build
if: ${{ github.ref == 'refs/heads/master' }}
runs-on: ubuntu-latest
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
merge-multiple: true
- name: Release
uses: 'marvinpinto/action-automatic-releases@latest'
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
automatic_release_tag: latest
prerelease: true
title: "Nightly Build"
files: |
*.tar.bz2
meta-arm64.json
meta-x86_64.json