forked from Freetz/freetz
-
-
Notifications
You must be signed in to change notification settings - Fork 107
93 lines (81 loc) · 3.22 KB
/
generate_juis.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
name: generate_juis
on:
push:
branches: [ master ]
paths:
- '.github/workflows/generate_juis.yml'
- 'docs/juis/generate.sh'
schedule:
- cron: '30 16 * * 1-5'
workflow_dispatch:
jobs:
build:
container:
# image: ubuntu:20.04
# image: freetzng/generate
image: ghcr.io/freetz-ng/generate
runs-on: ubuntu-latest
if: github.repository == 'freetz-ng/freetz-ng'
steps:
- name: key
id: key
run: |
export KEY="${GITHUB_WORKFLOW%-*}"
echo "key=$KEY" >> $GITHUB_OUTPUT
echo "################################################################" && bash -c "echo KEY=$KEY"
# - name: update
# run: apt-get -y update && apt-get -y upgrade && apt-get -y dist-upgrade
#
# - name: install
# run: |
# DEBIAN_FRONTEND=noninteractive apt-get -y install \
# git locales netcat curl bsdmainutils xxd libarchive-zip-perl
#
# - name: locale
# run: locale-gen en_US.utf8 && locale-gen de_DE.UTF-8 && update-locale
- name: clone
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
umask 0022
git config --global --add safe.directory $GITHUB_WORKSPACE
git clone https://github-actions:$GITHUB_TOKEN@${GITHUB_SERVER_URL##*/}/$GITHUB_REPOSITORY.git $GITHUB_WORKSPACE --branch $GITHUB_REF_NAME
- name: cache_load
uses: actions/cache/restore@v4
if: always()
with:
path: |
/tmp/.freetz-juis
key: ${{ github.workflow }}
- name: generate
run: |
export LANG=en_US.utf8
[ "${{ github.workflow }}" != "${{ steps.key.outputs.key }}" ] && c=5 || c=1
seq $c | while read x; do docs/juis/generate.sh; done
- name: commit
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --global --add safe.directory $GITHUB_WORKSPACE
git pull
git add .
git status
git config --local user.name github-actions
git config --local user.email [email protected]
git diff --cached --quiet && exit 0 || git commit -m "juis: automatic update"
git config --local credential.helper '!x() { echo "password=$GITHUB_TOKEN"; };x'
git push origin $GITHUB_REF_NAME
- name: cache_clear
env:
ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
run: |
ASSETS="$(curl -s -H "Accept: application/vnd.github+json" -H "Authorization: Bearer $ACTIONS_TOKEN" -H "X-GitHub-Api-Version: 2022-11-28" "https://api.github.com/repos/${{ github.repository }}/actions/caches")"
ASSID="$(echo "$ASSETS" | grep -B7 "\"key\": *\"${{ steps.key.outputs.key }}\"" | sed -rn 's/ *"id": *([^,]*),*/\1/p')"
curl -sL -X DELETE -H "Accept: application/vnd.github+json" -H "Authorization: Bearer $ACTIONS_TOKEN" -H "X-GitHub-Api-Version: 2022-11-28" "https://api.github.com/repos/${{ github.repository }}/actions/caches/$ASSID" && echo "Deleted ASSID=$ASSID ..." || true
- name: cache_save
uses: actions/cache/save@v4
if: always()
with:
path: |
/tmp/.freetz-juis
key: ${{ steps.key.outputs.key }}