This repository was archived by the owner on Jan 25, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
152 lines (129 loc) · 6.24 KB
/
release-cgpt-vboot-utils.yml
File metadata and controls
152 lines (129 loc) · 6.24 KB
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
name: Repacking cgpt and vboot-utils
on:
schedule:
- cron: "20 0 * * *" # run at the start of every day after utils and system packages are released
workflow_dispatch:
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
env:
public_key: ${{ secrets.PUBLIC }}
private_key: ${{ secrets.PRIVATE }}
jobs:
check-name:
runs-on: ubuntu-latest
outputs:
match_results: ${{ steps.check-names.outputs.match_results }}
vboot_remote_name: ${{ steps.check-names.outputs.vboot_remote_name }}
cgpt_remote_name: ${{ steps.check-names.outputs.cgpt_remote_name }}
steps:
- name: Checking out repository code
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Check if remote debs were updated
id: check-names
run: |
# Download remote deb packages
apt-get download cgpt vboot-kernel-utils
# for some reason the sha256sum changes every time -> use package name instead
vboot_latest_name=$(ls | grep vboot-kernel-utils*.deb)
cgpt_latest_name=$(ls | grep cgpt*.deb)
# Check remote names against cached ones
vboot_match_results=$([[ "$(cat cache/deb_name-cache.txt | head -1)" == "$vboot_latest_name" ]] && echo "true" || echo "false")
cgpt_match_results=$([[ "$(cat cache/deb_name-cache.txt | tail -1)" == "$cgpt_latest_name" ]] && echo "true" || echo "false")
# Compare results and determine if there was an update for any of the debs
if [[ "$vboot_match_results" == "true" && "$cgpt_match_results" == "true" ]]; then
echo "match_results=true" >> $GITHUB_OUTPUT
else
echo "match_results=false" >> $GITHUB_OUTPUT
fi
# Add names to output
echo "vboot_remote_name=$vboot_latest_name" >> $GITHUB_OUTPUT
echo "cgpt_remote_name=$cgpt_latest_name" >> $GITHUB_OUTPUT
repackage-debs:
runs-on: ubuntu-latest
needs: check-name # needs for the vars from the previous job
# Only run script when a remote name has changed, aka the results DON'T match
if: needs.check-name.outputs.match_results == 'false'
steps:
- name: Checking out repository code
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Update local cache file
run: |
echo "${{ needs.check-name.outputs.vboot_remote_name }}"$'\n'"${{ needs.check-name.outputs.cgpt_remote_name }}" > cache/deb_name-cache.txt
- name: Install pacman
run: |
# Add ubuntu 22.10 repo to sources
echo "deb http://archive.ubuntu.com/ubuntu mantic main universe" | sudo tee -a /etc/apt/sources.list
# Update apt sources
sudo apt-get update
# Install pacman-package-manager from ubuntu 22.10 repo
sudo apt-get -y install pacman-package-manager libarchive-tools
# Set author in makepkg.conf
echo 'PACKAGER="The Eupnea Project <https://github.com/eupnea-project>"' | sudo tee -a /etc/makepkg.conf
- name: Bump version in pkgbuild file
run: |
CURRENT_VERSION=$(sed -n '3p' pkgbuild-files/cgpt_vboot.pkgbuild | sed 's/.*://' | xargs) # get current version from control file
NEXTVERSION=$(echo ${CURRENT_VERSION} | awk -F. -v OFS=. '{$NF += 1 ; print}') # bump version
sed -i "3s/.*/${NEXTVERSION}/" pkgbuild-files/cgpt_vboot.pkgbuild # update version in control file
- name: Repacking cgpt-vboot package
run: |
cp pkgbuild-files/cgpt_vboot.pkgbuild . # makepkg needs the pkgbuild file in the current directory
makepkg --nodeps -p cgpt_vboot.pkgbuild
- name: Downloading old repo
run: |
# Download old repo.
# Exit in case the branch doesn't exist yet
git clone --branch=gh-pages https://github.com/eupnea-project/arch-repo /tmp/arch-repo || exit 0
# Copy old repo to current directory
cp -r /tmp/arch-repo/repodata .
# Delete old cgpt-vboot packages
rm -rf repodata/x86_64/cgpt-vboot-utils*.pkg.tar.gz
# Delete all signatures
rm -rf repodata/x86_64/*.sig
- name: Setting up arch repo
run: bash create-repo.sh
- name: Updating files in repository
uses: stefanzweifel/git-auto-commit-action@v4
with:
# Disable setting repo owner as commit author
commit_user_name: github-actions[bot]
commit_user_email: 41898282+github-actions[bot]@users.noreply.github.com
commit_author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
# Optional. Commit message for the created commit.
# Defaults to "Apply automatic changes"
commit_message: Update files in main branch
file_pattern: 'pkgbuild-files/cgpt_vboot.pkgbuild cache/deb_name-cache.txt'
- name: Deploying cgpt-vboot-utils package
uses: stefanzweifel/git-auto-commit-action@v4
with:
# Disable setting repo owner as commit author
commit_user_name: github-actions[bot]
commit_user_email: 41898282+github-actions[bot]@users.noreply.github.com
commit_author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
# Optional. Commit message for the created commit.
# Defaults to "Apply automatic changes"
commit_message: Deploy cgpt-vboot-utils package
branch: gh-pages
create_branch: true
# Only include needed files
file_pattern: 'repodata/* public_key.gpg'
push_options: '--force'
- name: Generating release tag
id: tag
run: |
echo "::set-output name=release_tag::$(date +"%Y.%m.%d_%H-%M")"
- name: Rename cgpt-vboot-utils
run: mv ./cgpt-vboot-utils*.pkg.tar.gz ./cgpt-vboot-utils.pkg.tar.gz
- name: Creating new release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ steps.tag.outputs.release_tag }}
name: Automated cgpt-vboot-utils package creation - ${{ steps.tag.outputs.release_tag }}
body: |
These are repackaged ubuntu deb packages for arch.
files: |
./cgpt-vboot-utils.pkg.tar.gz