Skip to content

Commit

Permalink
Initial commit of atomic-dev
Browse files Browse the repository at this point in the history
  • Loading branch information
JoshStrobl committed Nov 11, 2023
1 parent 795c536 commit 273c60a
Show file tree
Hide file tree
Showing 3 changed files with 150 additions and 0 deletions.
63 changes: 63 additions & 0 deletions .github/workflows/atomic-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: "Build Atomic Dev image"

env:
IMAGE_NAME: atomic-dev
IMAGE_TAGS: latest ${{ github.sha }}
IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }}
REGISTRY_USER: ${{ github.actor }}
REGISTRY_PASSWORD: ${{ github.token }}

on:
pull_request:
branches:
- main
paths-ignore:
- "README.md"
push:
branches:
- main
paths-ignore:
- "LICENSE"
- "README.md"
schedule:
- cron: "0 0 * * *"

permissions: read-all

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
cook:
name: Cooks the latest Atomic dev
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4

- name: Build container image
id: build_image
uses: redhat-actions/buildah-build@v2
with:
image: ${{ env.IMAGE_NAME }}
tags: ${{ env.IMAGE_TAGS }}
containerfiles: Containerfile
layers: false
oci: true

- name: Push To GHCR
uses: redhat-actions/push-to-registry@v2
id: push
with:
image: ${{ steps.build_image.outputs.image }}
tags: ${{ steps.build_image.outputs.tags }}
registry: ${{ env.IMAGE_REGISTRY }}
username: ${{ env.REGISTRY_USER }}
password: ${{ env.REGISTRY_PASSWORD }}
extra-args: |
--disable-content-trust
- name: Echo outputs
run: |
echo "${{ toJSON(steps.push.outputs) }}"
45 changes: 45 additions & 0 deletions Containerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
FROM quay.io/fedora-ostree-desktops/onyx:39

LABEL org.opencontainers.image.title="atomic-dev"
LABEL org.opencontainers.image.description="Fedora Budgie Atomic development images"
LABEL org.opencontainers.image.source=https://github.com/BuddiesOfBudgie/atomic-dev
LABEL org.opencontainers.image.licenses=MIT

RUN rpm-ostree install \
accountsservice-devel \
alsa-lib-devel \
desktop-file-utils \
gettext \
git \
glib2-devel \
gnome-bluetooth3.34-libs-devel \
gnome-desktop3-devel \
gnome-menus-devel \
gnome-settings-daemon-devel \
gobject-introspection-devel \
gsettings-desktop-schemas-devel \
gstreamer1-devel \
gtk-doc \
gtk3-devel \
ibus-devel \
intltool \
json-glib-devel \
libcanberra-devel \
libgee-devel \
libnotify-devel \
libpeas-devel \
libSM-devel \
libuuid-devel \
libwnck3-devel \
libX11-devel \
libXtst-devel \
magpie-devel \
meson \
polkit-devel \
pulseaudio-libs-devel \
sassc \
upower-devel \
vala \
xorg-x11-xtrans-devel && \
rm -rf /var/lib/unbound/root.key && \
ostree container commit
42 changes: 42 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Atomic Dev

Atomic Dev is a project designed to provide a launching off point for getting started with development of Budgie Desktop itself. Atomic Dev is built on top of ostree / OCIs for [Fedora Onyx](https://fedoraproject.org/onyx/), the Fedora atomic desktop spin released with Budgie Desktop.

[![Chat with us on Matrix](https://img.shields.io/badge/chat-on%20Matrix-%230098D4)](https://matrix.to/#/#buddies-of-budgie:matrix.org)
[![Website](https://img.shields.io/website?url=https%3A%2F%2Fbuddiesofbudgie.org&style=flat-square)](https://buddiesofbudgie.org)

[![](https://opencollective.com/buddies-of-budgie/tiers/backer.svg?avatarHeight=96)](https://opencollective.com/buddies-of-budgie)

## Info

This image will ship with all the dependencies required for the development of Budgie Desktop. If you are not developing for Budgie Desktop, **this image is not for you**, go with Fedora Onyx instead if you are looking for an atomic desktop, or check out our [Getting Budgie](https://docs.buddiesofbudgie.org/user/getting-budgie/) for a bunch of other really awesome operating systems. If you are already developing or wanting to develop for Budgie Desktop, however wishing to use another operating system or Fedora Budgie Spin (mentioning explicitly as it is the non-atomic spin), check out our [Building Budgie Desktop](https://docs.buddiesofbudgie.org/developer/workflow/building-budgie-desktop) documentation.

This project leverages Fedora OSTree desktop images and Fedora's OCI support to build a container image which are leveraged as the "transport mechanism for bootable operating system". See [ostree native containers](https://coreos.github.io/rpm-ostree/container/) for more details. These images are built daily.

### Important

As we expand Budgie Desktop's capabilities and shift its architecture, the packages provided in this image will change. You may still wish to follow the above linked Building Budgie Desktop doc for any packages which may not be served by Fedora's repo and require building from source. As Budgie shifts to development of Budgie 11 series, it should _also_ be expected that we will cease installation of packages in this image that are designed for Budgie 10 development, as the focus will be fully placed into 11.

### What It Is Not

This image is **not** and will never be designed to effectively be a "Budgie OS". The only defaults it has are the result of Fedora Onyx, which is designed to be used out-of-the-box by end users. This image is strictly intended to ease getting a development environment set up without layering many packages. If you looking for a "Budgie OS", simply go to the Getting Budgie page linked in this README and pick what you are most comfortable with!

## Usage

To use the Atomic Dev images, you must first install [Fedora Onyx](https://fedoraproject.org/onyx/).

After installation of Onyx, run the following command, after which you can install packages and update via rpm-ostree as you would normally:

```
rpm-ostree rebase ostree-unverified-image:registry:ghcr.io/buddiesofbudgie/atomic-dev:latest
```

To build your own images on top of atomic-dev, define your own Containerfile with the following `FROM` and feel free to get inspired by the workflow files.

```
FROM ghcr.io/buddiesofbudgie/atomic-dev:latest
```

## License

Atomic Dev is inspired by [Timothée Ravier's fedora-kinoite](https://github.com/travier/fedora-kinoite/) images, with their work being used as a reference point for image building, as well as taking inspiration from the [Universal Blue](https://universal-blue.org/) project. As it is so heavily inspired by Timothée's repository, it follows the same licensing of MIT.

0 comments on commit 273c60a

Please sign in to comment.