generated from cesaryuan/f-droid-repo-template
-
Notifications
You must be signed in to change notification settings - Fork 0
136 lines (115 loc) · 4 KB
/
fdroid.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
name: Generate F-Droid repo
on:
workflow_dispatch:
inputs:
dry-run:
description: "Skips pushing changes when enabled. Optional. Defaults to false."
type: boolean
default: false
required: false
max-items:
description: "Maximum number of items to convert. Optional. Defaults to all."
type: number
required: false
default: 0
schedule:
- cron: "45 2 * * *"
push:
paths:
- '.github/workflows/fdroid.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
apps:
name: "Generate repo from apps listing"
runs-on: ubuntu-22.04
env:
COMMIT_MSG_FILE: "${{ github.workspace }}/commit_message.tmp"
steps:
- name: Checkout repo
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- name: Create basic directory structure
run: mkdir -p fdroid/repo
- name: Restore correct mtime
run: |
sudo apt install git-restore-mtime
git restore-mtime
- name: Set up Git
run: |
git config --local user.email "[email protected]"
git config --local user.name "35998162"
- name: Set up repo secrets
run: |
echo "${{ secrets.KEYSTORE_P12 }}" | base64 -d - > fdroid/keystore.p12
- name: Validate secrets
run: |
if [ -f "fdroid/keystore.p12" ]; then
echo "keystore found"
else
echo "keystore not found!"
exit 1
fi
- name: Configure F-Droid server
env:
FDROID_STORE_KEYSTORE_PASSWORD: ${{ secrets.FDROID_STORE_KEYSTORE_PASSWORD }}
run: |
cp base_fdroid_config.yml fdroid/config.yml
chmod 0600 fdroid/config.yml
echo "keypass: '$FDROID_STORE_KEYSTORE_PASSWORD'" >> fdroid/config.yml
echo "keystorepass: '$FDROID_STORE_KEYSTORE_PASSWORD'" >> fdroid/config.yml
# Get repo and replace [GithubRepo] with the actual repo
repo=$(echo "${{ github.repository }}" | sed 's/\//\\\//g')
sed -i "s/\[GithubRepo\]/$repo/g" fdroid/config.yml
- name: Add apt repository
run: |
sudo add-apt-repository ppa:fdroid/fdroidserver
sudo apt-get update
- name: Cache apt packages
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: fdroidserver
version: "@latest"
- name: Set up Go
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
with:
go-version: '^1.17.0'
- name: Download modules.json and convert
working-directory: convert_xposed
run: |
num_items=${{ inputs.max-items }}
if [ -z "$num_items" ]; then
num_items=0
fi
go run main_convert.go -o ../repos.yaml -max $num_items
- name: Run metascoop
id: run-metascoop
env:
GH_ACCESS_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }}
run: |
bash run_metascoop.sh ${{ env.COMMIT_MSG_FILE }}
if [ $? -eq 0 ]; then
echo "Changes detected"
echo "has_changes=true" >> $GITHUB_OUTPUT
elif [ $? -eq 2 ]; then
echo "No changes detected"
echo "has_changes=false" >> $GITHUB_OUTPUT
else
echo "Unexpected exit code: $?"
echo "has_changes=false" >> $GITHUB_OUTPUT
fi
continue-on-error: true
- name: Delete F-Droid server config
run: |
rm -f fdroid/config.yml
- name: Update repo
env:
GH_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }}
run: |
if [ "${{ inputs.dry-run }}" = "true" ]; then
echo "Dry run. Changes are not being saved."
elif [ "${{ steps.run-metascoop.outputs.has_changes }}" != "true" ]; then
echo "No changes to save."
else
bash update_repo.sh ${{ env.COMMIT_MSG_FILE }}
fi