5 Commits

Author SHA1 Message Date
3bdef16173 bump: v0.0.44 -> v0.0.45
Some checks failed
Check / check (push) Has been skipped
Release / check (push) Successful in 52s
Release / release (push) Successful in 2m52s
Release / package (push) Failing after 19s
2025-05-17 04:11:56 -04:00
968378e8bb style: rename
All checks were successful
Check / check (push) Successful in 55s
2025-05-17 04:09:13 -04:00
6767df7f91 style: rename
Some checks failed
Check / check (push) Has been cancelled
2025-05-17 04:08:10 -04:00
f9245c4145 style: move push action to new dir so github and gitea can share it
Some checks failed
Check / check (push) Failing after 0s
2025-05-17 04:03:37 -04:00
e20156a2de style: rename github steps
Some checks failed
Check / check (push) Failing after 0s
2025-05-17 03:08:52 -04:00
12 changed files with 134 additions and 172 deletions

View File

@ -1,5 +1,5 @@
name: "initialize" name: "Initialize"
description: "install nix & use cachix" description: "Install nix & use cachix"
inputs: inputs:
token: token:
@ -9,12 +9,12 @@ inputs:
runs: runs:
using: "composite" using: "composite"
steps: steps:
- name: install nix - name: Install nix
uses: cachix/install-nix-action@v31 uses: cachix/install-nix-action@v31
with: with:
nix_path: nixpkgs=channel:nixos-unstable nix_path: nixpkgs=channel:nixos-unstable
- name: use cachix - name: Use cachix
uses: cachix/cachix-action@v16 uses: cachix/cachix-action@v16
with: with:
name: trevstack name: trevstack

60
.actions/push/action.yaml Normal file
View File

@ -0,0 +1,60 @@
name: "Docker Push"
description: "Push to docker registry"
inputs:
server_url:
required: true
repository:
required: true
tag:
required: true
runs:
using: "composite"
steps:
- name: Set env
run: |
REGISTRY=$(basename ${{ inputs.server_url }})
NR=${{ inputs.repository }}
NAMESPACE="${NR%%/*}"
REPOSITORY="${NR##*/}"
TAG=${{ inputs.tag }}
VERSION=${TAG#v}
echo "REGISTRY=${REGISTRY}" >> $GITHUB_ENV
echo "NAMESPACE=${NAMESPACE}" >> $GITHUB_ENV
echo "REPOSITORY=${REPOSITORY}" >> $GITHUB_ENV
echo "VERSION=${VERSION}" >> $GITHUB_ENV
- name: Push images
run: |
docker image tag $REPOSITORY:$VERSION-amd64 $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64
docker push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64
docker image tag $REPOSITORY:$VERSION-arm64 $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64
docker push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64
docker image tag $REPOSITORY:$VERSION-arm $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm
docker push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm
- name: Push manifest
run: |
docker manifest create $HOST/$REPOSITORY:$VERSION \
$REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 \
$REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 \
$REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm
docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 --arch amd64
docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 --arch arm64
docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm --arch arm
docker manifest push $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION
docker manifest create $REGISTRY/$NAMESPACE/$REPOSITORY:latest \
$REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 \
$REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 \
$REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm
docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:latest $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-amd64 --arch amd64
docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:latest $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm64 --arch arm64
docker manifest annotate $REGISTRY/$NAMESPACE/$REPOSITORY:latest $REGISTRY/$NAMESPACE/$REPOSITORY:$VERSION-arm --arch arm
docker manifest push $REGISTRY/$NAMESPACE/$REPOSITORY:latest

View File

@ -12,22 +12,12 @@ jobs:
name: check name: check
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: | if: |
contains(gitea.event.head_commit.message, 'bump:') == false && contains(github.event.head_commit.message, 'bump:') == false &&
contains(gitea.event.head_commit.message, 'Merge pull request') == false contains(github.event.head_commit.message, 'Merge pull request') == false
steps: steps:
- name: Checkout - uses: actions/checkout@v4
uses: actions/checkout@v4 - uses: ./.actions/init
- name: Install Nix
uses: cachix/install-nix-action@v31
with: with:
nix_path: nixpkgs=channel:nixos-unstable token: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: Use Cachix - run: nix flake check
uses: cachix/cachix-action@v16
with:
name: trevstack
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: Check
run: nix flake check

View File

@ -9,43 +9,23 @@ jobs:
check: check:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - uses: actions/checkout@v4
uses: actions/checkout@v4 - uses: ./.actions/init
- name: Install Nix
uses: cachix/install-nix-action@v31
with: with:
nix_path: nixpkgs=channel:nixos-unstable token: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: Use Cachix - run: nix flake check
uses: cachix/cachix-action@v16
with:
name: trevstack
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: Check
run: nix flake check
release: release:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: check needs: check
steps: steps:
- name: Checkout - uses: actions/checkout@v4
uses: actions/checkout@v4 - uses: ./.actions/init
- name: Install Nix
uses: cachix/install-nix-action@v31
with: with:
nix_path: nixpkgs=channel:nixos-unstable token: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: Use Cachix - run: >
uses: cachix/cachix-action@v16
with:
name: trevstack
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: Build
run: >
nix build nix build
.#trevstack-linux-amd64 .#trevstack-linux-amd64
.#trevstack-linux-arm64 .#trevstack-linux-arm64
@ -54,52 +34,35 @@ jobs:
.#trevstack-darwin-amd64 .#trevstack-darwin-amd64
.#trevstack-darwin-arm64 .#trevstack-darwin-arm64
- name: Release - uses: akkuman/gitea-release-action@v1
uses: akkuman/gitea-release-action@v1
with: with:
files: |- files: |-
result*/bin/* result*/bin/*
# https://docs.docker.com/build/ci/github-actions/manage-tags-labels/
package: package:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: release # Wait for binary cache to propagate needs: release
steps: steps:
- name: Get domain - uses: actions/checkout@v4
id: get_domain - uses: ./.actions/init
with:
token: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- uses: docker/login-action@v3
with:
registry: ${{ github.server_url }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build & load images
run: | run: |
DOMAIN=$(basename ${{ gitea.server_url }}) nix build .#trevstack-linux-amd64-image && ./result | docker load
echo $DOMAIN nix build .#trevstack-linux-arm64-image && ./result | docker load
echo "domain=$DOMAIN" >> $GITHUB_OUTPUT nix build .#trevstack-linux-arm-image && ./result | docker load
- name: Docker meta - name: Push images
id: meta uses: ./.actions/push
uses: docker/metadata-action@v5
with: with:
# list of Docker images to use as base name for tags server_url: ${{ github.server_url }}
images: | repository: ${{ github.repository }}
${{ steps.get_domain.outputs.domain }}/${{ gitea.repository }} tag: ${{ github.ref_name }}
# generate Docker tags based on the following events/attributes
tags: |
type=ref,event=branch
type=semver,pattern={{version}}
- name: Login to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: ${{ gitea.server_url }}
username: ${{ gitea.actor }}
password: ${{ secrets.PAT }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

View File

@ -9,33 +9,21 @@ jobs:
update: update:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - uses: actions/checkout@v4
uses: actions/checkout@v4 - uses: ./.actions/init
with: with:
fetch-depth: 0 token: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: Install Nix
uses: cachix/install-nix-action@v31
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Use Cachix
uses: cachix/cachix-action@v16
with:
name: trevstack
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
# https://github.com/actions/checkout/issues/13 # https://github.com/actions/checkout/issues/13
- name: Set Git Config - name: Set git config
run: | run: |
git config user.name "github-actions[bot]" git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com" git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git checkout -B update git checkout -B update
- name: Update - run: nix run .#update
run: nix run .#update
- name: Create Pull Request - name: Create pull request
env: env:
PAT: ${{ secrets.PAT }} PAT: ${{ secrets.PAT }}
run: | run: |

View File

@ -16,9 +16,8 @@ jobs:
contains(github.event.head_commit.message, 'Merge pull request') == false contains(github.event.head_commit.message, 'Merge pull request') == false
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: ./.github/actions/init - uses: ./.actions/init
with: with:
token: "${{ secrets.CACHIX_AUTH_TOKEN }}" token: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: Check - run: nix flake check
run: nix flake check

View File

@ -14,24 +14,22 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: ./.github/actions/init - uses: ./.actions/init
with: with:
token: "${{ secrets.CACHIX_AUTH_TOKEN }}" token: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: check - run: nix flake check
run: nix flake check
release: release:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: check needs: check
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: ./.github/actions/init - uses: ./.actions/init
with: with:
token: "${{ secrets.CACHIX_AUTH_TOKEN }}" token: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: build - run: >
run: >
nix build nix build
.#trevstack-linux-amd64 .#trevstack-linux-amd64
.#trevstack-linux-arm64 .#trevstack-linux-arm64
@ -40,8 +38,7 @@ jobs:
.#trevstack-darwin-amd64 .#trevstack-darwin-amd64
.#trevstack-darwin-arm64 .#trevstack-darwin-arm64
- name: release - uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@v2
with: with:
generate_release_notes: true generate_release_notes: true
files: |- files: |-
@ -52,59 +49,25 @@ jobs:
needs: release needs: release
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: ./.github/actions/init - uses: ./.actions/init
with: with:
token: "${{ secrets.CACHIX_AUTH_TOKEN }}" token: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: set env - uses: docker/login-action@v3
run: |
TAG=${{ github.ref_name }}
VERSION=${TAG#v}
REGISTRY="ghcr.io"
echo "VERSION=${VERSION}" >> $GITHUB_ENV
echo "REGISTRY=${REGISTRY}" >> $GITHUB_ENV
- name: login to github container registry
uses: docker/login-action@v3
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- name: build & load images - name: Build & load images
run: | run: |
nix build .#trevstack-linux-amd64-image && ./result | docker load nix build .#trevstack-linux-amd64-image && ./result | docker load
nix build .#trevstack-linux-arm64-image && ./result | docker load nix build .#trevstack-linux-arm64-image && ./result | docker load
nix build .#trevstack-linux-arm-image && ./result | docker load nix build .#trevstack-linux-arm-image && ./result | docker load
- name: push images - name: Push images
run: | uses: ./.actions/push
docker image tag trevstack:$VERSION-amd64 $REGISTRY/$GITHUB_REPOSITORY:$VERSION-amd64 with:
docker push $REGISTRY/$GITHUB_REPOSITORY:$VERSION-amd64 server_url: ${{ github.server_url }}
repository: ${{ github.repository }}
docker image tag trevstack:$VERSION-arm64 $REGISTRY/$GITHUB_REPOSITORY:$VERSION-arm64 tag: ${{ github.ref_name }}
docker push $REGISTRY/$GITHUB_REPOSITORY:$VERSION-arm64
docker image tag trevstack:$VERSION-arm $REGISTRY/$GITHUB_REPOSITORY:$VERSION-arm
docker push $REGISTRY/$GITHUB_REPOSITORY:$VERSION-arm
- name: push manifest
run: |
docker manifest create $REGISTRY/$GITHUB_REPOSITORY:$VERSION \
$REGISTRY/$GITHUB_REPOSITORY:$VERSION-amd64 \
$REGISTRY/$GITHUB_REPOSITORY:$VERSION-arm64 \
$REGISTRY/$GITHUB_REPOSITORY:$VERSION-arm
docker manifest annotate $REGISTRY/$GITHUB_REPOSITORY:$VERSION $REGISTRY/$GITHUB_REPOSITORY:$VERSION-amd64 --arch amd64
docker manifest annotate $REGISTRY/$GITHUB_REPOSITORY:$VERSION $REGISTRY/$GITHUB_REPOSITORY:$VERSION-arm64 --arch arm64
docker manifest annotate $REGISTRY/$GITHUB_REPOSITORY:$VERSION $REGISTRY/$GITHUB_REPOSITORY:$VERSION-arm --arch arm
docker manifest push $REGISTRY/$GITHUB_REPOSITORY:$VERSION
docker manifest create $REGISTRY/$GITHUB_REPOSITORY:latest \
$REGISTRY/$GITHUB_REPOSITORY:$VERSION-amd64 \
$REGISTRY/$GITHUB_REPOSITORY:$VERSION-arm64 \
$REGISTRY/$GITHUB_REPOSITORY:$VERSION-arm
docker manifest annotate $REGISTRY/$GITHUB_REPOSITORY:latest $REGISTRY/$GITHUB_REPOSITORY:$VERSION-amd64 --arch amd64
docker manifest annotate $REGISTRY/$GITHUB_REPOSITORY:latest $REGISTRY/$GITHUB_REPOSITORY:$VERSION-arm64 --arch arm64
docker manifest annotate $REGISTRY/$GITHUB_REPOSITORY:latest $REGISTRY/$GITHUB_REPOSITORY:$VERSION-arm --arch arm
docker manifest push $REGISTRY/$GITHUB_REPOSITORY:latest

View File

@ -14,20 +14,19 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: ./.github/actions/init - uses: ./.actions/init
with: with:
token: "${{ secrets.CACHIX_AUTH_TOKEN }}" token: "${{ secrets.CACHIX_AUTH_TOKEN }}"
# https://github.com/actions/checkout/issues/13 # https://github.com/actions/checkout/issues/13
- name: set git config - name: Set git config
run: | run: |
git config user.name "github-actions[bot]" git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com" git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
- name: update - run: nix run .#update
run: nix run .#update
- name: create pull request - name: Create pull request
id: cpr id: cpr
uses: peter-evans/create-pull-request@v7 uses: peter-evans/create-pull-request@v7
with: with:
@ -35,7 +34,7 @@ jobs:
title: update title: update
body: automatic update body: automatic update
- name: enable automerge - name: Enable automerge
run: gh pr merge --merge --auto "${{ steps.cpr.outputs.pull-request-number }}" run: gh pr merge --merge --auto "${{ steps.cpr.outputs.pull-request-number }}"
env: env:
GH_TOKEN: ${{ secrets.PAT }} GH_TOKEN: ${{ secrets.PAT }}

View File

@ -1,12 +1,12 @@
{ {
"name": "trevstack", "name": "trevstack",
"version": "0.0.44", "version": "0.0.45",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "trevstack", "name": "trevstack",
"version": "0.0.44", "version": "0.0.45",
"devDependencies": { "devDependencies": {
"@bufbuild/protovalidate": "^0.1.1", "@bufbuild/protovalidate": "^0.1.1",
"@connectrpc/connect": "^2.0.2", "@connectrpc/connect": "^2.0.2",

View File

@ -1,7 +1,7 @@
{ {
"name": "trevstack", "name": "trevstack",
"private": true, "private": true,
"version": "0.0.44", "version": "0.0.45",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite dev", "dev": "vite dev",

View File

@ -21,7 +21,7 @@
... ...
}: let }: let
pname = "trevstack"; pname = "trevstack";
version = "0.0.44"; version = "0.0.45";
build-systems = [ build-systems = [
"x86_64-linux" "x86_64-linux"
@ -130,7 +130,7 @@
pname = "check-client"; pname = "check-client";
inherit version; inherit version;
src = ./client; src = ./client;
npmDepsHash = "sha256-W48OgBIJQjN4O7++t3tE2PaRaHMEgdL7C8QmLq4gfNE="; npmDepsHash = "sha256-jO8sDDKUJRnZQJFXP/QleNP+p24iF5IxiLci4Jhnpi8=";
dontNpmInstall = true; dontNpmInstall = true;
buildPhase = '' buildPhase = ''
@ -193,7 +193,7 @@
client = pkgs.buildNpmPackage { client = pkgs.buildNpmPackage {
inherit pname version; inherit pname version;
src = ./client; src = ./client;
npmDepsHash = "sha256-W48OgBIJQjN4O7++t3tE2PaRaHMEgdL7C8QmLq4gfNE="; npmDepsHash = "sha256-jO8sDDKUJRnZQJFXP/QleNP+p24iF5IxiLci4Jhnpi8=";
installPhase = '' installPhase = ''
cp -r build "$out" cp -r build "$out"

View File

@ -3,7 +3,7 @@ servers:
- url: /grpc - url: /grpc
info: info:
title: Trevstack API title: Trevstack API
version: 0.0.44 version: 0.0.45
description: API for Trevstack description: API for Trevstack
contact: contact:
name: Trev name: Trev