build: github actions

This commit is contained in:
Jake Turner 2025-07-11 11:17:10 -07:00
parent 3b81e00a69
commit 97434a6f5f
3 changed files with 89 additions and 0 deletions

37
.github/workflows/docker.yml vendored Normal file
View File

@ -0,0 +1,37 @@
name: Build Docker Image
on:
workflow_dispatch:
inputs:
version:
description: 'Semantic version to label the Docker image under'
required: true
type: string
jobs:
check_authorization:
name: Check authorization to publish new Docker image
runs-on: ubuntu-latest
outputs:
isAuthorized: ${{ steps.check-auth.outputs.is_authorized }}
steps:
- name: check-auth
id: check-auth
run: echo "is_authorized=${{ contains(secrets.DEPLOYMENT_AUTHORIZED_USERS, github.triggering_actor) }}" >> $GITHUB_OUTPUT
build:
name: Build Docker image
needs: check_authorization
if: needs.check_authorization.outputs.isAuthorized == 'true'
runs-on: ubuntu-latest
steps:
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
push: true
tags: ghcr.io/crosstalk-solutions/project-nomad-admin:${{ inputs.version }}

37
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,37 @@
name: Release SemVer
on: workflow_dispatch
jobs:
check_authorization:
name: Check authorization to release new version
runs-on: ubuntu-latest
outputs:
isAuthorized: ${{ steps.check-auth.outputs.is_authorized }}
steps:
- name: check-auth
id: check-auth
run: echo "is_authorized=${{ contains(secrets.DEPLOYMENT_AUTHORIZED_USERS, github.triggering_actor) }}" >> $GITHUB_OUTPUT
release:
name: Release
needs: check_authorization
if: needs.check_authorization.outputs.isAuthorized == 'true'
runs-on: ubuntu-latest
outputs:
didRelease: ${{ steps.semver.outputs.new_release_published }}
newVersion: ${{ steps.semver.outputs.new_release_version }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
- name: semantic-release
uses: cycjimmy/semantic-release-action@v3
id: semver
env:
GITHUB_TOKEN: ${{ secrets.COSMISTACKBOT_ACCESS_TOKEN }}
GIT_AUTHOR_NAME: cosmistack-bot
GIT_AUTHOR_EMAIL: dev@cosmistack.com
GIT_COMMITTER_NAME: cosmistack-bot
GIT_COMMITTER_EMAIL: dev@cosmistack.com

15
.releaserc.json Normal file
View File

@ -0,0 +1,15 @@
{
"branches": ["master"],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
["@semantic-release/npm", {
"npmPublish": false
}],
["@semantic-release/git", {
"assets": ["package.json"],
"message": "chore(release): ${nextRelease.version} [skip ci]"
}],
"@semantic-release/github"
]
}