|
| 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