expirment with gh releases
This commit is contained in:
parent
5c0a1e9bc5
commit
55e913178d
7 changed files with 199 additions and 0 deletions
|
@ -1,6 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This script is assuming you've installed Fedora Sway Atomic (sericea)
|
||||
#
|
||||
# Show all available branches
|
||||
# $ ostree remote refs fedora | grep sericea | grep $(uname -m)
|
||||
#
|
||||
# Rebase
|
||||
# $ rpm-ostree rebase fedora:fedora/41/aarch64/sericea
|
||||
|
||||
# Add addtional RPM repos
|
||||
cd /etc/yum.repos.d || exit 1
|
||||
|
|
33
fedora-atomic/sway-atomic-setup.sh
Executable file
33
fedora-atomic/sway-atomic-setup.sh
Executable file
|
@ -0,0 +1,33 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This script is assuming you've installed Fedora Sway Atomic (sericea)
|
||||
#
|
||||
# Show all available branches
|
||||
# $ ostree remote refs fedora | grep sericea | grep $(uname -m)
|
||||
#
|
||||
# Rebase
|
||||
# $ rpm-ostree rebase fedora:fedora/41/aarch64/sericea
|
||||
|
||||
# Add addtional RPM repos
|
||||
cd /etc/yum.repos.d || exit 1
|
||||
sudo wget https://pkgs.tailscale.com/stable/fedora/tailscale.repo
|
||||
|
||||
# Add flatpak repos
|
||||
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
|
||||
rpm-ostree override remove firefox firefox-langpacks
|
||||
rpm-ostree install \
|
||||
distrobox \
|
||||
tailscale \
|
||||
syncthing \
|
||||
ansible
|
||||
|
||||
sudo flatpak install -y \
|
||||
io.gitlab.librewolf-community \
|
||||
org.kde.kate
|
||||
|
||||
# The following may be needed
|
||||
#
|
||||
echo
|
||||
echo "REBOOT NOW! (systemctl reboot)"
|
||||
echo
|
39
github-bin/doctl.yml
Normal file
39
github-bin/doctl.yml
Normal file
|
@ -0,0 +1,39 @@
|
|||
- name: "Discover the latest {{ gh_project }} release from GitHub"
|
||||
community.general.github_release:
|
||||
user: "{{ gh_user }}"
|
||||
repo: "{{ gh_project }}"
|
||||
action: latest_release
|
||||
register: release_latest
|
||||
|
||||
- name: Set the release version strings
|
||||
ansible.builtin.set_fact:
|
||||
release_latest_tag: "{{ release_latest['tag'] }}"
|
||||
release_latest_trim: "{{ release_latest['tag'] | regex_replace('^v','') }}"
|
||||
|
||||
- name: Set the checksum filename
|
||||
ansible.builtin.set_fact:
|
||||
release_checksum: "{{ gh_project }}-{{ release_latest_trim }}-checksums.sha256"
|
||||
|
||||
- name: Set the release download filename for aarch64
|
||||
ansible.builtin.set_fact:
|
||||
release_filename: "{{ gh_project }}-{{ release_latest_trim }}-linux-arm64.tar.gz"
|
||||
when: ansible_facts['architecture'] == "aarch64"
|
||||
|
||||
- name: Set the release download filename for x86_64
|
||||
ansible.builtin.set_fact:
|
||||
release_filename: "{{ gh_project }}-{{ release_latest_trim }}-linux-amd64.tar.gz"
|
||||
when: ansible_facts['architecture'] == "x86_64"
|
||||
|
||||
- name: Check if the release was previously downloaded
|
||||
ansible.builtin.stat:
|
||||
path: "{{ gh_bin_dir }}/{{ release_filename }}"
|
||||
register: release_local
|
||||
|
||||
- name: "Download the latest {{ gh_project }} release from GitHub"
|
||||
ansible.builtin.get_url:
|
||||
url: "https://github.com/{{ gh_user }}/{{ gh_project }}/releases/download/{{ release_latest_tag }}/{{ release_filename }}"
|
||||
dest: "{{ gh_bin_dir }}"
|
||||
mode: "0644"
|
||||
checksum: sha256:https://github.com/{{ gh_user }}/{{ gh_project }}/releases/download/{{ release_latest['tag'] }}/{{ release_checksum }}
|
||||
when: not release_local.stat.exists
|
||||
notify: "archive updated"
|
44
github-bin/main.yml
Normal file
44
github-bin/main.yml
Normal file
|
@ -0,0 +1,44 @@
|
|||
---
|
||||
- name: Update utilities from GitHub
|
||||
hosts: 127.0.0.1
|
||||
connection: local
|
||||
vars:
|
||||
home_dir: "{{ ansible_facts['env']['HOME'] }}"
|
||||
gh_bin_dir: "{{ home_dir }}/ghbin"
|
||||
|
||||
tasks:
|
||||
- name: Setup GitHub bin locaiton
|
||||
ansible.builtin.file:
|
||||
path: "{{ gh_bin_dir }}"
|
||||
state: directory
|
||||
mode: "0755"
|
||||
|
||||
- name: doctl
|
||||
ansible.builtin.include_tasks: doctl.yml
|
||||
vars:
|
||||
gh_user: digitalocean
|
||||
gh_project: doctl
|
||||
|
||||
- name: starship
|
||||
ansible.builtin.include_tasks: starship.yml
|
||||
vars:
|
||||
gh_user: starship
|
||||
gh_project: starship
|
||||
|
||||
- name: marksman
|
||||
ansible.builtin.include_tasks: marksman.yml
|
||||
vars:
|
||||
gh_user: artempyanykh
|
||||
gh_project: marksman
|
||||
|
||||
handlers:
|
||||
- name: "archive updated"
|
||||
ansible.builtin.unarchive:
|
||||
src: "{{ gh_bin_dir }}/{{ release_filename }}"
|
||||
dest: "{{ home_dir }}/bin"
|
||||
|
||||
- name: "marksman updated"
|
||||
ansible.builtin.copy:
|
||||
src: "{{ gh_bin_dir }}/{{ release_filename }}-{{ release_latest_tag }}"
|
||||
dest: "{{ home_dir }}/bin/marksman"
|
||||
mode: "0755"
|
34
github-bin/marksman.yml
Normal file
34
github-bin/marksman.yml
Normal file
|
@ -0,0 +1,34 @@
|
|||
- name: "Discover the latest {{ gh_project }} release from GitHub"
|
||||
community.general.github_release:
|
||||
user: "{{ gh_user }}"
|
||||
repo: "{{ gh_project }}"
|
||||
action: latest_release
|
||||
register: release_latest
|
||||
|
||||
- name: Set the release version strings
|
||||
ansible.builtin.set_fact:
|
||||
release_latest_tag: "{{ release_latest['tag'] }}"
|
||||
|
||||
- name: Set the release download filename for aarch64
|
||||
ansible.builtin.set_fact:
|
||||
release_filename: "{{ gh_project }}-linux-arm64"
|
||||
when: ansible_facts['architecture'] == "aarch64"
|
||||
|
||||
- name: Set the release download filename for x86_64
|
||||
ansible.builtin.set_fact:
|
||||
release_filename: "{{ gh_project }}-linux-x64"
|
||||
when: ansible_facts['architecture'] == "x86_64"
|
||||
|
||||
- name: Check if the release was previously downloaded
|
||||
ansible.builtin.stat:
|
||||
path: "{{ gh_bin_dir }}/{{ release_filename }}-{{ release_latest_tag }}"
|
||||
register: release_local
|
||||
|
||||
- name: "Download the latest {{ gh_project }} release from GitHub"
|
||||
ansible.builtin.get_url:
|
||||
url: "https://github.com/{{ gh_user }}/{{ gh_project }}/releases/download/{{ release_latest_tag }}/{{ release_filename }}"
|
||||
dest: "{{ gh_bin_dir }}/{{ release_filename }}-{{ release_latest_tag }}"
|
||||
mode: "0644"
|
||||
# checksum: sha256:https://github.com/{{ gh_user }}/{{ gh_project }}/releases/download/{{ release_latest['tag'] }}/{{ release_checksum }}
|
||||
when: not release_local.stat.exists
|
||||
notify: "marksman updated"
|
36
github-bin/starship.yml
Normal file
36
github-bin/starship.yml
Normal file
|
@ -0,0 +1,36 @@
|
|||
- name: "Discover the latest {{ gh_project }} release from GitHub"
|
||||
community.general.github_release:
|
||||
user: "{{ gh_user }}"
|
||||
repo: "{{ gh_project }}"
|
||||
action: latest_release
|
||||
register: release_latest
|
||||
|
||||
- name: Set the release version strings
|
||||
ansible.builtin.set_fact:
|
||||
release_latest_tag: "{{ release_latest['tag'] }}"
|
||||
|
||||
- name: Set the release download filenames for aarch64
|
||||
ansible.builtin.set_fact:
|
||||
release_filename: "{{ gh_project }}-aarch64-unknown-linux-musl.tar.gz"
|
||||
release_checksum: "{{ gh_project }}-aarch64-unknown-linux-musl.tar.gz.sha256"
|
||||
when: ansible_facts['architecture'] == "aarch64"
|
||||
|
||||
- name: Set the release download filenames for x86_64
|
||||
ansible.builtin.set_fact:
|
||||
release_filename: "{{ gh_project }}-x86_64-unknown-linux-musl.tar.gz"
|
||||
release_checksum: "{{ gh_project }}-x86_64-unknown-linux-musl.tar.gz.sha256"
|
||||
when: ansible_facts['architecture'] == "x86_64"
|
||||
|
||||
- name: Check if the release was previously downloaded
|
||||
ansible.builtin.stat:
|
||||
path: "{{ gh_bin_dir }}/{{ release_filename }}"
|
||||
register: release_local
|
||||
|
||||
- name: "Download the latest {{ gh_project }} release from GitHub"
|
||||
ansible.builtin.get_url:
|
||||
url: "https://github.com/{{ gh_user }}/{{ gh_project }}/releases/download/{{ release_latest_tag }}/{{ release_filename }}"
|
||||
dest: "{{ gh_bin_dir }}"
|
||||
mode: "0644"
|
||||
checksum: sha256:https://github.com/{{ gh_user }}/{{ gh_project }}/releases/download/{{ release_latest['tag'] }}/{{ release_checksum }}
|
||||
when: not release_local.stat.exists
|
||||
notify: "archive updated"
|
7
github-bin/update.sh
Executable file
7
github-bin/update.sh
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
# ansible-playbook doctl.yml
|
||||
# ansible-playbook starship.yml
|
||||
# ansible-playbook marksman.yml
|
||||
|
||||
ansible-playbook main.yml
|
Loading…
Reference in a new issue