Skip to content

Commit

Permalink
modular action workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
kasey committed Jan 8, 2025
1 parent 40e6376 commit 222cb91
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 43 deletions.
57 changes: 57 additions & 0 deletions .github/workflows/build-unclog.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: build-unclog

on:
workflow_call:
inputs:
artifact-name:
required: false
type: string
outputs:
artifact-name:
description: "name of uploaded artifact"
value: ${{ jobs.build_unclog.outputs.artifact-name}}

jobs:
build-unclog:
runs-on: ubuntu-latest
outputs:
artifact-name: ${{ steps.artifact-namer.outputs.artifact-name }}
steps:
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.22'

- name: Build
run: go build -o unclog -v .

- name: Default binary name
if: ${{ inputs.artifact-name != '' }}
shell: bash
run: |
echo "UNCLOG_BINARY_NAME={{ $inputs.artifact-name }}" >> ${GITHUB_ENV}
- name: Scoped name in PR
if: ${{ inputs.artifact-name == '' && github.event_name == 'pull_request' }}
shell: bash
run: |
echo "UNCLOG_BINARY_NAME=unclog-${{ github.event.pull_request.head.sha }}" >> ${GITHUB_ENV}
- name: Scoped name on push
if: ${{ inputs.artifact-name == '' && github.event_name == 'push' }}
shell: bash
run: |
echo "UNCLOG_BINARY_NAME=unclog-${GITHUB_SHA}" >> ${GITHUB_ENV}
- name: Set artifact-name output parameter
id: artifact-namer
shell: bash
run: |
echo "artifact-name=${UNCLOG_BINARY_NAME}" >> "$GITHUB_OUTPUT"
- name: Upload unclog binary
uses: actions/upload-artifact@v4
with:
name: ${{ steps.artifact-namer.outputs.artifact-name}}
path: unclog
47 changes: 4 additions & 43 deletions .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# This workflow will build a golang project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go

name: build-unclog
name: main-artifact-refresher

on:
pull_request:
Expand All @@ -12,45 +12,6 @@ on:

jobs:
build-changelog-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.22'

- name: Build
run: go build -o unclog -v .

- name: Upload changelog binary
uses: actions/upload-artifact@v3
with:
name: unclog-binary
path: unclog

run-changelog-check:
runs-on: ubuntu-latest
needs: build-changelog-check

steps:
- name: Checkout source code
uses: actions/checkout@v3

- name: Download changelog check binary
uses: actions/download-artifact@v3
with:
name: unclog-binary

- name: Get new changelog files
id: new-changelog-files
uses: tj-actions/changed-files@v45
with:
files: |
log/**.md
- name: Run lint command
env:
ALL_ADDED_MARKDOWN: ${{ steps.new-changelog-files.outputs.added_files }}
run: chmod +x unclog && ./unclog check -fragment-env=ALL_ADDED_MARKDOWN
uses: ./.github/workflows/build-unclog.yml
with:
artifact-name: unclog
48 changes: 48 additions & 0 deletions .github/workflows/dogfood.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# This workflow will build a golang project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go

name: dogfood

on:
pull_request:
branches: [ "main" ]

jobs:
build-unclog:
outputs:
artifact-name: ${{ steps.unclog-build.outputs.artifact-name }}
steps:

- name: Run unclog build
id: unclog-build
uses: ./.github/workflows/build-unclog.yml

run-changelog-check:
runs-on: ubuntu-latest
needs: build-unclog

steps:

- name: Download changelog check binary
id: unclog-download
uses: actions/download-artifact@v4
with:
name: ${{ needs.build-unclog.outputs.artifact-name }}

- name: Checkout source code
uses: actions/checkout@v4

- name: Get new changelog files
id: new-changelog-files
uses: tj-actions/changed-files@v45
with:
files: |
log/**.md
- name: Run lint command
shell: bash
env:
ALL_ADDED_MARKDOWN: ${{ steps.new-changelog-files.outputs.added_files }}
UNCLOG_BIN: ${{ steps.unclog-download.outputs.download-path}}/${{ needs.build-unclog.outputs-artifact-name }}
run: |
chmod +x ${UNCLOG_BIN} && ./${UNCLOG_BIN} check -fragment-env=ALL_ADDED_MARKDOWN

0 comments on commit 222cb91

Please sign in to comment.