add publish workflow

This commit is contained in:
Hayden 2022-10-10 19:26:29 -08:00
parent bd67c1c56c
commit 6175411f93
2 changed files with 85 additions and 34 deletions

67
.github/workflows/partial-publish.yaml vendored Normal file
View file

@ -0,0 +1,67 @@
name: Frontend / E2E
on:
workflow_call:
inputs:
tag:
required: true
type: string
release:
required: false
type: boolean
default: false
jobs:
publish:
name: "Publish Homebox"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.19
- name: Set up QEMU
id: qemu
uses: docker/setup-qemu-action@v1
with:
image: tonistiigi/binfmt:latest
platforms: all
- name: install buildx
id: buildx
uses: docker/setup-buildx-action@v1
with:
install: true
- name: login to container registry
run: docker login ghcr.io --username hay-kot --password $CR_PAT
env:
CR_PAT: ${{ secrets.CR_PAT }}
- name: Build and push
uses: docker/build-push-action@v3
with:
push: true
tags: user/app:latest
- name: build nightly the image
if: ${{ inputs.release == false }}
run: |
docker build --push \
--tag ghcr.io/hay-kot/homebox:{{ inputs.tag }} \
--build-arg COMMIT=$(git rev-parse HEAD) \
--build-arg BUILD_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
--platform linux/amd64,linux/arm64,linux/arm/v7 .
- name: build release tagged the image
if: ${{ inputs.release == true }}
run: |
docker build --push \
--tag ghcr.io/hay-kot/homebox:nightly \
--tag ghcr.io/hay-kot/homebox:latest \
--tag ghcr.io/hay-kot/homebox:{{ inputs.tag }} \
--build-arg COMMIT=$(git rev-parse HEAD) \
--build-arg BUILD_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
--platform linux/amd64,linux/arm64,linux/arm/v7 .

View file

@ -4,6 +4,9 @@ on:
push: push:
branches: branches:
- main - main
release:
types:
- published
env: env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
@ -28,44 +31,25 @@ jobs:
- uses: superfly/flyctl-actions/setup-flyctl@master - uses: superfly/flyctl-actions/setup-flyctl@master
- run: flyctl deploy --remote-only - run: flyctl deploy --remote-only
publish: publish-tag:
if: github.event_name == 'release'
name: "Publish Tag"
needs:
- backend-tests
- frontend-tests
uses: hay-kot/homebox/.github/workflows/partial-publish.yaml@main
with:
release: true
tag: ${{ github.event.release.tag_name }}
publish-nightly:
name: "Publish Nightly" name: "Publish Nightly"
needs: needs:
- backend-tests - backend-tests
- frontend-tests - frontend-tests
runs-on: ubuntu-latest uses: hay-kot/homebox/.github/workflows/partial-publish.yaml@main
steps:
- uses: actions/checkout@v2
- name: Set up Go
uses: actions/setup-go@v2
with: with:
go-version: 1.19 tag: nightly
- name: Set up QEMU
id: qemu
uses: docker/setup-qemu-action@v1
with:
image: tonistiigi/binfmt:latest
platforms: all
- name: install buildx
id: buildx
uses: docker/setup-buildx-action@v1
with:
install: true
- name: login to container registry
run: docker login ghcr.io --username hay-kot --password $CR_PAT
env:
CR_PAT: ${{ secrets.CR_PAT }}
- name: build the image
run: |
docker build --push \
--tag ghcr.io/hay-kot/homebox:nightly \
--build-arg COMMIT=$(git rev-parse HEAD) \
--build-arg BUILD_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
--platform linux/amd64,linux/arm64,linux/arm/v7 .
deploy-docs: deploy-docs:
name: Deploy docs name: Deploy docs