1 Commits

Author SHA1 Message Date
Shaun Setlock
5add7af8b0 Created Actions workflow for nvim container build. 2025-05-03 16:42:24 -04:00
10 changed files with 65 additions and 196 deletions

View File

@@ -1,38 +0,0 @@
name: Build and Push Docker Image
on:
push:
tags:
- "v*"
workflow_dispatch:
jobs:
build-push:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: gitea.setlock.net
username: ${{ secrets.USER }}
password: ${{ secrets.TOKEN }}
- name: Extract Tag Name (if any)
id: get_tag
run: |
echo "GIT_TAG=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: Build and Push Docker Image
uses: docker/build-push-action@v5
with:
context: ./tools
push: true
platforms: linux/amd64
tags: |
gitea.setlock.net/shaun/dev-container:latest
gitea.setlock.net/shaun/dev-container:${{ env.GIT_TAG }}

View File

@@ -0,0 +1,47 @@
# .gitea/workflows/docker-build-push.yml
name: Build and Push Docker Image
on:
push:
branches:
- main
- master
tags:
- "v*" # triggers when you push a tag like v1.0.0
paths:
- "**/Dockerfile"
workflow_dispatch: # manual run button
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: gitea.example.com
username: ${{ secrets.GITEA_USERNAME }}
password: ${{ secrets.GITEA_TOKEN }}
- name: Extract Tag Name (if any)
id: get_tag
run: |
echo "GIT_TAG=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: Build and Push Docker Image
uses: docker/build-push-action@v5
with:
context: ./nvim/tools
push: true
platforms: linux/amd64,linux/arm64
tags: |
https://gitea.setlock.net/shaun/dotfiles:latest
https://gitea.setlock.net/shaun/dotfiles:${{ env.GIT_TAG }}

View File

@@ -1,31 +0,0 @@
name: Build and Push Docker Image
on:
schedule:
- cron: "0 2 * * *"
workflow_dispatch:
jobs:
build-push:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: gitea.setlock.net
username: ${{ secrets.USER }}
password: ${{ secrets.TOKEN }}
- name: Build and Push Docker Image
uses: docker/build-push-action@v5
with:
context: ./tools
push: true
platforms: linux/amd64
tags: |
gitea.setlock.net/shaun/dev-container:nightly

View File

@@ -1,2 +0,0 @@
config:
MD013: false

View File

@@ -1,26 +0,0 @@
return {
"saghen/blink.cmp",
opts = function(_, opts)
local completion_toggle = Snacks.toggle({
name = "Completion",
get = function()
return vim.b.completion
end,
set = function(state)
vim.b.completion = state
end,
})
local function toggle_completion()
require("blink.cmp").hide()
completion_toggle:toggle()
end
vim.keymap.set({ "i", "n" }, "<C-Space>", toggle_completion, { desc = "Toggle Completion" })
opts.enabled = function()
return vim.b.completion
end
return opts
end,
}

View File

@@ -1,12 +0,0 @@
local HOME = os.getenv("HOME")
return {
"mfussenegger/nvim-lint",
optional = true,
opts = {
linters = {
["markdownlint-cli2"] = {
args = { "--config", HOME .. "/.config/nvim/lua/plugins/.markdownlint-cli2.yaml", "--" },
},
},
},
}

View File

@@ -1,69 +0,0 @@
return {
"epwalsh/obsidian.nvim",
version = "*", -- recommended, use latest release instead of latest commit
lazy = true,
-- Below will load the plugin for all markdown files.
-- ft = "markdown",
-- Replace the above line with this if you only want to load obsidian.nvim for markdown files in your vault:
event = {
"BufReadPre /home/shaun/Obsidian/*.md",
"BufNewFile /home/shaun/Obsidian/*.md",
},
dependencies = {
-- Required.
"nvim-lua/plenary.nvim",
-- Recommended.
"hrsh7th/nvim-cmp",
"nvim-telescope/telescope.nvim",
"nvim-treesitter/nvim-treesitter",
},
opts = {
workspaces = {
{
name = "Obsidian",
path = "~/Obsidian",
},
},
-- Optional, completion of wiki links, local markdown links, and tags using nvim-cmp.
completion = {
-- Set to false to disable completion.
nvim_cmp = true,
-- Trigger completion at 4 chars.
min_chars = 4,
},
-- Optional, configure key mappings. These are the defaults. If you don't want to set any keymappings this
-- way then set 'mappings = {}'.
mappings = {
-- Overrides the 'gf' mapping to work on markdown/wiki links within your vault.
["gf"] = {
action = function()
return require("obsidian").util.gf_passthrough()
end,
opts = { noremap = false, expr = true, buffer = true },
},
-- Toggle check-boxes.
["<leader>ch"] = {
action = function()
return require("obsidian").util.toggle_checkbox()
end,
opts = { buffer = true },
},
-- Smart action depending on context, either follow link or toggle checkbox.
["<cr>"] = {
action = function()
return require("obsidian").util.smart_action()
end,
opts = { buffer = true, expr = true },
},
},
-- Optional, configure additional syntax highlighting / extmarks.
-- This requires you have `conceallevel` set to 1 or 2. See `:help conceallevel` for more details.
ui = {
enable = false, -- set to false to disable all additional syntax features
},
},
}

View File

@@ -16,9 +16,9 @@ RUN useradd -m -u 1000 -s /usr/bin/fish shaun
# Install required software # Install required software
RUN apt-get update && apt-get -y install \ RUN apt-get update && apt-get -y install \
curl fzf ripgrep tree git xclip python3 python3-pip python3-venv nodejs npm \ curl fzf ripgrep tree git xclip python3 python3-pip python3-venv nodejs npm \
tzdata ninja-build gettext libtool libtool-bin autoconf automake cmake g++ \ tzdata ninja-build gettext libtool libtool-bin autoconf automake cmake g++ \
pkg-config zip unzip fish tmux pkg-config zip unzip fish tmux
# Cooperate Neovim with Python 3. # Cooperate Neovim with Python 3.
RUN python3 -m pip install --break-system-packages --root-user-action ignore pynvim RUN python3 -m pip install --break-system-packages --root-user-action ignore pynvim
@@ -28,9 +28,9 @@ RUN npm i -g neovim
# Install Neovim from source. # Install Neovim from source.
RUN mkdir -p /tmp/neovim-src && \ RUN mkdir -p /tmp/neovim-src && \
git clone --depth 1 --branch stable https://github.com/neovim/neovim /tmp/neovim-src && \ git clone --depth 1 --branch stable https://github.com/neovim/neovim /tmp/neovim-src && \
cd /tmp/neovim-src && make -j$(nproc) && make install && \ cd /tmp/neovim-src && make -j$(nproc) && make install && \
rm -rf /tmp/neovim-src rm -rf /tmp/neovim-src
# Clone configuration files. # Clone configuration files.
USER shaun USER shaun
@@ -48,7 +48,7 @@ RUN ln -s /home/shaun/dotfiles/tmux /home/shaun/.config
# Install tmux plugin manager. # Install tmux plugin manager.
RUN git clone https://github.com/tmux-plugins/tpm /home/shaun/.config/tmux/plugins/tpm && \ RUN git clone https://github.com/tmux-plugins/tpm /home/shaun/.config/tmux/plugins/tpm && \
/home/shaun/.config/tmux/plugins/tpm/scripts/install_plugins.sh /home/shaun/.config/tmux/plugins/tpm/scripts/install_plugins.sh
# Get oh-my-fish and bob-the-fish installed. # Get oh-my-fish and bob-the-fish installed.
RUN curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install > install RUN curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install > install
@@ -63,12 +63,11 @@ USER root
RUN usermod --shell /usr/bin/fish shaun RUN usermod --shell /usr/bin/fish shaun
# Set workspace directory # Set workspace directory
RUN mkdir -p /workspace RUN mkdir -p /workspace && chown shaun:shaun /workspace
RUN chown -R shaun:shaun /workspace WORKDIR /workspace
# Switch to non-root user # Switch to non-root user
USER shaun USER shaun
WORKDIR /workspace
# Avoid container exit. # Avoid container exit.
CMD ["tail", "-f", "/dev/null"] CMD ["tail", "-f", "/dev/null"]

View File

@@ -0,0 +1,9 @@
version: "3"
services:
nv:
container_name: nv
image: shaun/neovim:latest
user: "1000:1000"
restart: unless-stopped
volumes:
- ~/code:/root/workspace

View File

@@ -1,8 +0,0 @@
version: "3"
services:
mydev:
container_name: mydev
image: gitea.setlock.net/shaun/dev-container:latest
restart: unless-stopped
volumes:
- /home/shaun:/workspace