style: move push action to new dir so github and gitea can share it
Some checks failed
Check / check (push) Failing after 0s
Some checks failed
Check / check (push) Failing after 0s
This commit is contained in:
60
.actions/push/action.yaml
Normal file
60
.actions/push/action.yaml
Normal 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
|
@ -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
|
|
||||||
|
@ -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 }}
|
|
||||||
|
@ -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: |
|
||||||
|
2
.github/workflows/check.yaml
vendored
2
.github/workflows/check.yaml
vendored
@ -16,7 +16,7 @@ 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 }}"
|
||||||
|
|
||||||
|
49
.github/workflows/release.yaml
vendored
49
.github/workflows/release.yaml
vendored
@ -14,7 +14,7 @@ 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 }}"
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ jobs:
|
|||||||
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 }}"
|
||||||
|
|
||||||
@ -49,19 +49,10 @@ 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
|
|
||||||
run: |
|
|
||||||
TAG=${{ github.ref_name }}
|
|
||||||
VERSION=${TAG#v}
|
|
||||||
REGISTRY="ghcr.io"
|
|
||||||
|
|
||||||
echo "VERSION=${VERSION}" >> $GITHUB_ENV
|
|
||||||
echo "REGISTRY=${REGISTRY}" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- uses: docker/login-action@v3
|
- uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
@ -75,32 +66,8 @@ jobs:
|
|||||||
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
|
|
||||||
|
2
.github/workflows/update.yaml
vendored
2
.github/workflows/update.yaml
vendored
@ -14,7 +14,7 @@ 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 }}"
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user