parent
d4720150b5
commit
896da59b87
@ -0,0 +1,57 @@ |
||||
--- |
||||
name: 'build container images' |
||||
|
||||
on: |
||||
push: |
||||
branches: |
||||
- master |
||||
tags: |
||||
- '*' |
||||
|
||||
jobs: |
||||
docker: |
||||
runs-on: ubuntu-latest |
||||
steps: |
||||
- name: Checkout |
||||
uses: actions/checkout@v3 |
||||
- name: Prepare |
||||
id: prep |
||||
run: | |
||||
DOCKER_IMAGE=quay.io/go-skynet/llama-cli |
||||
VERSION=latest |
||||
SHORTREF=${GITHUB_SHA::8} |
||||
# If this is git tag, use the tag name as a docker tag |
||||
if [[ $GITHUB_REF == refs/tags/* ]]; then |
||||
VERSION=${GITHUB_REF#refs/tags/} |
||||
fi |
||||
TAGS="${DOCKER_IMAGE}:${VERSION},${DOCKER_IMAGE}:${SHORTREF}" |
||||
# If the VERSION looks like a version number, assume that |
||||
# this is the most recent version of the image and also |
||||
# tag it 'latest'. |
||||
if [[ $VERSION =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then |
||||
TAGS="$TAGS,${DOCKER_IMAGE}:latest" |
||||
fi |
||||
# Set output parameters. |
||||
echo ::set-output name=tags::${TAGS} |
||||
echo ::set-output name=docker_image::${DOCKER_IMAGE} |
||||
echo ::set-output name=image::${DOCKER_IMAGE}:${VERSION} |
||||
- name: Set up QEMU |
||||
uses: docker/setup-qemu-action@master |
||||
with: |
||||
platforms: all |
||||
- name: Set up Docker Buildx |
||||
id: buildx |
||||
uses: docker/setup-buildx-action@master |
||||
- name: Login to DockerHub |
||||
if: github.event_name != 'pull_request' |
||||
uses: docker/login-action@v2 |
||||
with: |
||||
registry: quay.io |
||||
username: ${{ secrets.QUAY_USERNAME }} |
||||
password: ${{ secrets.QUAY_PASSWORD }} |
||||
- uses: earthly/actions/setup-earthly@v1 |
||||
with: |
||||
version: v0.7.0 |
||||
- name: Build |
||||
run: | |
||||
earthly --platform=linux/amd64 --platform=linux/arm64 --push +image --IMAGE=${{ steps.prep.outputs.image }} |
@ -0,0 +1,26 @@ |
||||
name: goreleaser |
||||
|
||||
on: |
||||
push: |
||||
tags: |
||||
- 'v*' |
||||
|
||||
jobs: |
||||
goreleaser: |
||||
runs-on: ubuntu-latest |
||||
steps: |
||||
- name: Checkout |
||||
uses: actions/checkout@v3 |
||||
with: |
||||
fetch-depth: 0 |
||||
- name: Set up Go |
||||
uses: actions/setup-go@v3 |
||||
with: |
||||
go-version: 1.18 |
||||
- name: Run GoReleaser |
||||
uses: goreleaser/goreleaser-action@v4 |
||||
with: |
||||
version: latest |
||||
args: release --clean |
||||
env: |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
@ -0,0 +1,15 @@ |
||||
# Make sure to check the documentation at http://goreleaser.com |
||||
project_name: llama-cli |
||||
builds: |
||||
- ldflags: |
||||
- -w -s |
||||
env: |
||||
- CGO_ENABLED=0 |
||||
goos: |
||||
- linux |
||||
- darwin |
||||
- windows |
||||
goarch: |
||||
- amd64 |
||||
- arm64 |
||||
binary: '{{ .ProjectName }}' |
Loading…
Reference in new issue