Skip to content

Commit 6aba5d2

Browse files
authored
Create ci.yaml
1 parent b8ccb3c commit 6aba5d2

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

.github/workflows/ci.yaml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: Gentoo Desktop OpenRC AMD64
2+
3+
on:
4+
push:
5+
branches: [master]
6+
7+
concurrency:
8+
group: ${{ github.workflow }}-${{ github.ref }}
9+
cancel-in-progress: true
10+
11+
jobs:
12+
gentoo-job:
13+
runs-on: [self-hosted, nixos] # GitHub Actions host runner
14+
container:
15+
image: gentoo/stage3:desktop # Pulls the Gentoo image from Docker Hub
16+
steps:
17+
- name: Checkout repository
18+
uses: actions/checkout@v4
19+
with:
20+
token: ${{ secrets.GITHUB_TOKEN }}
21+
- name: Synchronise repo and install essentials
22+
run: |
23+
emerge --sync
24+
emerge dev-vcs/git flaggie app-eselect/eselect-repository openssh sudo
25+
- name: Recreate git repo structure
26+
run: |
27+
# git config --global user.name
28+
# git config --global user.email
29+
git config --global --add safe.directory "$(realpath .)"
30+
git init
31+
git branch -m master
32+
git remote add origin https://github.com/metacraft-labs/metacraft-overlay
33+
git fetch --all
34+
git reset --hard origin/master
35+
- name: Update manifests
36+
run: |
37+
useradd -K MAIL_DIR=/dev/null -m builder
38+
chown -R builder $(pwd)
39+
echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
40+
# sudo -E -u builder env HOME=/home/builder git config --global user.name
41+
# sudo -E -u builder env HOME=/home/builder git config --global user.email
42+
sudo -E -u builder env HOME=/home/builder git config --global init.defaultBranch main
43+
sudo -E -u builder env HOME=/home/builder git config --global commit.gpgsign true
44+
sudo -E -u builder env HOME=/home/builder git config --global tag.gpgsign true
45+
sudo -E -u builder env HOME=/home/builder git config --global gpg.format ssh
46+
47+
sudo -E -u builder mkdir -p /home/builder/.ssh
48+
echo "${{ secrets.ACTIONS_GENTOO_SSH_KEY }}" | sudo -E -u builder tee /home/builder/.ssh/id_rsa > /dev/null
49+
sudo -E -u builder chmod 600 /home/builder/.ssh/id_rsa
50+
51+
sudo -E -u builder env HOME=/home/builder git config --global user.signingkey /home/builder/.ssh/id_rsa
52+
53+
sudo -E -u builder ssh-keyscan -H github.com | sudo -E -u builder tee -a /home/builder/.ssh/known_hosts > /dev/null
54+
55+
# Start a new SSH agent for builder
56+
sudo -E -u builder sh -c 'eval $(ssh-agent -s) && ssh-add /home/builder/.ssh/id_rsa && ssh-add -l'
57+
58+
sudo -E -u builder git fetch --all
59+
old="$(pwd)"
60+
for manifest in $(find -iname "Manifest"); do
61+
man="$(realpath "${manifest}")"
62+
cd "$(dirname "${man}")"
63+
rm Manifest
64+
ebuild *.ebuild clean digest
65+
cd "${old}"
66+
done
67+
chown -R builder $(pwd)
68+
sudo -E -u builder git remote set-url origin [email protected]:metacraft-labs/metacraft-overlay
69+
# sudo -E -u builder sh -c "(git add . && git commit -m 'Update manifest' && git push origin HEAD:master) || echo 'Nothing to commit'"
70+
- name: Sync and add repo
71+
run: |
72+
eselect repository add metacraft-overlay git https://github.com/metacraft-labs/metacraft-overlay.git || exit
73+
emerge --sync metacraft-overlay || exit
74+
- name: Install applications
75+
run: |
76+
emerge codetracer || exit
77+
78+

0 commit comments

Comments
 (0)