This repository has been archived by the owner on Jun 5, 2024. It is now read-only.
Push image to ghcr #232
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Push image to ghcr" | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: 0 0 * * * # At the end of everyday | |
push: | |
branches: [master] | |
paths: | |
#FIXME: include the go binary here, when the time comes | |
- 'docker/**' | |
#when dependabot bumps a workflow version, we want to see how it works | |
- ".github/**" | |
tags: | |
- v*.*.* | |
release: | |
types: [created] | |
env: | |
REGISTRY: ghcr.io | |
IMAGE_NAME: wanjohiryan/arc3dia | |
BASE_TAG_PREFIX: base | |
jobs: | |
build-go: | |
name: Build arc3dia go executable | |
runs-on: ubuntu-latest | |
steps: | |
- | |
name: Checkout repo | |
uses: actions/checkout@v4 | |
- | |
name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.18 | |
- | |
name: Build binary | |
run: go build -v ./ | |
- | |
name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: gobinary | |
path: ./Arc3dia | |
retention-days: 5 | |
build-and-push-git-pkg: | |
name: Build docker base image | |
runs-on: ubuntu-latest | |
needs: | |
- build-go | |
permissions: | |
contents: read | |
packages: write | |
# | |
# do not run on forks | |
if: github.repository_owner == 'wanjohiryan' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Log into registry ${{ env.REGISTRY }} | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Extract Container metadata | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/${{ env.BASE_TAG_PREFIX }} | |
# | |
#tag on release, and a nightly build for 'dev' | |
tags: | | |
type=raw,value=nightly,enable={{is_default_branch}} | |
type=ref,event=tag | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
type=semver,pattern={{major}} | |
- | |
name: Download go binary | |
uses: actions/download-artifact@v3 | |
with: | |
name: gobinary | |
path: ./ | |
- name: Build and push image | |
uses: docker/build-push-action@v5 | |
with: | |
context: ./ | |
file: docker/base/Dockerfile | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} |