Skip to content

Commit

Permalink
Working through new build for pipeline.
Browse files Browse the repository at this point in the history
trying out a new build and publish mechanism
  • Loading branch information
daveshanley committed Jul 22, 2022
1 parent ff0bd3f commit d5f8ce5
Show file tree
Hide file tree
Showing 10 changed files with 367 additions and 182 deletions.
67 changes: 54 additions & 13 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
name: Build

on: workflow_dispatch
# push:
# branches:
# - main
# pull_request:
# branches:
# - main
on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
build:
Expand All @@ -31,12 +31,53 @@ jobs:
fi
- name: Build
run: make build

# REMOVE WHEN RESOLVED
# 1) https://github.com/golangci/golangci-lint-action/issues/135
# 2) https://github.com/golangci/golangci-lint-action/issues/81
- name: Clean modcache
run: go clean -modcache
- name: Lint
uses: golangci/golangci-lint-action@v2
- name: Coverage
run: |
go get github.com/axw/gocov/gocov
go get github.com/AlekSi/gocov-xml
go install github.com/axw/gocov/gocov
go install github.com/AlekSi/gocov-xml
- run: |
go test -v -coverprofile cover.out ./...
gocov convert cover.out | gocov-xml > coverage.xml
- uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.xml
flags: unittests
fail_ci_if_error: true
verbose: true
build-report-ui:
runs-on: ubuntu-20.04
strategy:
matrix:
node-version: [ 16.x, 18.x ]
steps:
- uses: actions/checkout@v3
name: Checkout repository

- name: setup node ${{matrix.node-version}}
uses: actions/setup-node@v3
with:
node-version: ${{matrix.node-version}}

- name: Install yarn
run: yarn install
working-directory: html-report/ui

- name: Build
run: yarn build
working-directory: html-report/ui

- name: Test
run: yarn test
working-directory: html-report/ui

- name: Lint Project
uses: golangci/golangci-lint-action@v2
- name: Lint
run: yarn lint
working-directory: html-report/ui
86 changes: 43 additions & 43 deletions .github/workflows/docker-build-push.yml
Original file line number Diff line number Diff line change
@@ -1,43 +1,43 @@
name: Publish Docker image

on: workflow_dispatch

jobs:
push_to_registries:
name: Push Docker image to multiple registries
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- name: Check out the repo
uses: actions/checkout@v3

- name: Log in to Docker Hub
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
with:
images: |
dshanley/vacuum
ghcr.io/${{ github.repository }}
- name: Build and push Docker images
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
#name: Publish Docker image
#
#on: workflow_dispatch
#
#jobs:
# push_to_registries:
# name: Push Docker image to multiple registries
# runs-on: ubuntu-latest
# permissions:
# packages: write
# contents: read
# steps:
# - name: Check out the repo
# uses: actions/checkout@v3
#
# - name: Log in to Docker Hub
# uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
# with:
# username: ${{ secrets.DOCKER_USERNAME }}
# password: ${{ secrets.DOCKER_PASSWORD }}
#
# - name: Log in to the Container registry
# uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
#
# - name: Extract metadata (tags, labels) for Docker
# id: meta
# uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
# with:
# images: |
# dshanley/vacuum
# ghcr.io/${{ github.repository }}
#
# - name: Build and push Docker images
# uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
# with:
# context: .
# push: true
# tags: ${{ steps.meta.outputs.tags }}
# labels: ${{ steps.meta.outputs.labels }}
78 changes: 39 additions & 39 deletions .github/workflows/goreleaser.yaml
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
name: goreleaser

on:
push:
# run only against tags
tags:
- '*'

permissions:
contents: write
# packages: write
# issues: write

jobs:
goreleaser:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
-
name: Fetch all tags
run: git fetch --force --tags
-
name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.18
-
name: Run GoReleaser
uses: goreleaser/goreleaser-action@v2
with:
distribution: goreleaser
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
#name: goreleaser
#
#on:
# push:
# # run only against tags
# tags:
# - '*'
#
#permissions:
# contents: write
# # packages: write
# # issues: write
#
#jobs:
# goreleaser:
# runs-on: ubuntu-latest
# steps:
# -
# name: Checkout
# uses: actions/checkout@v2
# with:
# fetch-depth: 0
# -
# name: Fetch all tags
# run: git fetch --force --tags
# -
# name: Set up Go
# uses: actions/setup-go@v2
# with:
# go-version: 1.18
# -
# name: Run GoReleaser
# uses: goreleaser/goreleaser-action@v2
# with:
# distribution: goreleaser
# version: latest
# args: release --rm-dist
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
16 changes: 16 additions & 0 deletions .github/workflows/label-check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Release Label Check

on:
pull_request_target:
types: [opened, labeled, unlabeled, synchronize]

jobs:
label-check:
runs-on: ubuntu-latest
steps:
- uses: jesusvasquez333/verify-pr-label-action@v1.4.0
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
valid-labels: "release/patch, release/minor, release/major"
pull-request-number: '${{ github.event.pull_request.number }}'
disable-reviews: true
42 changes: 21 additions & 21 deletions .github/workflows/npm-publish.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
name: "NPM Publish"

on:
push:
# run only against tags
tags:
- '*'
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# Setup .npmrc file to publish to npm
- uses: actions/setup-node@v3
with:
node-version: '16.x'
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
#name: "NPM Publish"
#
#on:
# push:
# # run only against tags
# tags:
# - '*'
#jobs:
# publish:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# # Setup .npmrc file to publish to npm
# - uses: actions/setup-node@v3
# with:
# node-version: '16.x'
# registry-url: 'https://registry.npmjs.org'
# - run: npm ci
# - run: npm publish
# env:
# NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
69 changes: 69 additions & 0 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Publish

on:
repository_dispatch:
types: [publish-event]

jobs:
release_and_brew:
name: Release and bump homebrew version
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Set up Go
uses: actions/setup-go@v2
id: go
with:
go-version: ^1.16

- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v2
with:
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GH_PAT }}

publish_npm:
name: Publish to NPM
needs: release_and_brew
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Set version
id: vars
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}

- name: Check version
run: echo "Version ${{ github.event.client_payload.new-tag }}"

- name: Use Node.js 16
uses: actions/setup-node@v1
with:
node-version: 16
registry-url: https://registry.npmjs.org/

- name: Setup Git user
run: |
git config --global user.name "Github Bot"
git config --global user.email "github-bot@quobix.com"
- name: Create .npmrc file
run: echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Bump NPM version
run: npm --no-git-tag-version --allow-same-version version ${{ github.event.client_payload.new-tag }}

- name: NPM publish
run: npm publish --access public
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
Loading

0 comments on commit d5f8ce5

Please sign in to comment.