-
Notifications
You must be signed in to change notification settings - Fork 0
115 lines (96 loc) · 3.64 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
name: CI
# Controls when the workflow will run
on:
push:
branches: [main]
paths:
- "gifski" # on TDLib updates
pull_request:
branches: [main]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
inputs:
checkout_dst:
description: 'Checkout Destiny'
required: false
type: string
default: 'main'
env:
GIFSKI_REPO: https://github.com/ImageOptim/gifski
ARTIFACT_NAME: GifskiFramework.zip
ARTIFACT_DIR: ./gifski
jobs:
build-GifskiFramework:
runs-on: macos-13
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Guard Submodules Is Version Release
if: ${{ github.event_name != 'workflow_dispatch' }}
run: |
set -e
cd gifski && git describe --contains
- name: Make all
working-directory: .
run: ./scripts/all.sh
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: GifskiFramework.zip
path: ./gifski/GifskiFramework.zip
if-no-files-found: error
create-release:
runs-on: macos-13
needs: [build-GifskiFramework]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive
- name: Checkout Submodules
if: ${{ github.event_name == 'workflow_dispatch' }}
run: |
set -e
cd gifski && git fetch --all --tags && git checkout $CHECKOUT_DST && cd ..
env:
CHECKOUT_DST: ${{ inputs.checkout_dst }}
- name: Set Envs
run: |
ARTIFACT_PATH="${{ env.ARTIFACT_DIR }}/${{ env.ARTIFACT_NAME }}"
echo "ARTIFACT_PATH=$ARTIFACT_PATH" >> $GITHUB_ENV
RELEASES_DOWNLOAD_URL=https://github.com/$GITHUB_REPOSITORY/releases/download
echo "RELEASES_DOWNLOAD_URL=$RELEASES_DOWNLOAD_URL" >> $GITHUB_ENV
GIFSKI_COMMIT=$(cd gifski && git rev-parse --short=8 HEAD)
echo "GIFSKI_COMMIT=$GIFSKI_COMMIT" >> $GITHUB_ENV
GIFSKI_VERSION=$(cd gifski && git describe --tag)
echo "GIFSKI_VERSION=$GIFSKI_VERSION" >> $GITHUB_ENV
GIFSKI_COMMIT_URL="${{ env.GIFSKI_REPO }}/tree/$GIFSKI_COMMIT"
echo "GIFSKI_COMMIT_URL=$GIFSKI_COMMIT_URL" >> $GITHUB_ENV
RELEASE_TAG=$GIFSKI_VERSION
echo "RELEASE_TAG=$RELEASE_TAG" >> $GITHUB_ENV
- name: Download XCFramework
uses: actions/download-artifact@v3
with:
name: GifskiFramework.zip
path: ${{ env.ARTIFACT_DIR }}
- name: Get Checksum
run: |
ARTIFACT_CHECKSUM=$(swift package compute-checksum ${{ env.ARTIFACT_PATH }})
echo "ARTIFACT_CHECKSUM=$ARTIFACT_CHECKSUM" >> $GITHUB_ENV
- name: Update Package.swift
run: |
python3 scripts/swift_package_generator.py --url "${{ env.RELEASES_DOWNLOAD_URL }}/${{ env.RELEASE_TAG }}/${{ env.ARTIFACT_NAME }}" --checksum ${{ env.ARTIFACT_CHECKSUM }}
git add Package.swift || true
git commit -m "[no ci] Bump tdlib ${{ env.RELEASE_TAG }}" || true
git push origin main || true
- name: Release
uses: softprops/action-gh-release@v1
with:
target_commitish: main
tag_name: ${{ env.RELEASE_TAG }}
files: ${{ env.ARTIFACT_PATH }}
body: "XCFramework based on gifski-${{ env.GIFSKI_VERSION }} commit [${{ env.GIFSKI_COMMIT }}](${{ env.TDLIB_COMMIT_URL }})\n\nZIP Checksum `${{ env.ARTIFACT_CHECKSUM }}`"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}