mirror of
https://github.com/lukaszraczylo/graphql-monitoring-proxy.git
synced 2026-10-12 05:32:36 +00:00
Switch to goreleaser.
This commit is contained in:
@@ -5,69 +5,13 @@ on:
|
|||||||
schedule:
|
schedule:
|
||||||
- cron: "0 3 * * *"
|
- cron: "0 3 * * *"
|
||||||
|
|
||||||
env:
|
permissions:
|
||||||
GO_VERSION: ">=1.21"
|
contents: write
|
||||||
|
actions: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# This job is responsible for preparation of the build
|
autoupdate:
|
||||||
# environment variables.
|
uses: lukaszraczylo/shared-actions/.github/workflows/go-autoupdate.yaml@main
|
||||||
prepare:
|
with:
|
||||||
name: Preparing build context
|
go-version: "1.24"
|
||||||
runs-on: ubuntu-latest
|
release-workflow: "release.yaml"
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repo
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install Go
|
|
||||||
uses: actions/setup-go@v5
|
|
||||||
id: cache
|
|
||||||
with:
|
|
||||||
go-version: ${{env.GO_VERSION}}
|
|
||||||
cache-dependency-path: "**/*.sum"
|
|
||||||
|
|
||||||
- name: Go get dependencies
|
|
||||||
if: steps.cache.outputs.cache-hit != 'true'
|
|
||||||
run: |
|
|
||||||
go get ./...
|
|
||||||
|
|
||||||
# This job is responsible for running tests and linting the codebase
|
|
||||||
test:
|
|
||||||
name: "Unit testing"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: golang:1
|
|
||||||
needs: [prepare]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0 # Ensure full history is checked out
|
|
||||||
token: ${{ secrets.GHCR_TOKEN }}
|
|
||||||
|
|
||||||
- name: Install Go
|
|
||||||
uses: actions/setup-go@v5
|
|
||||||
with:
|
|
||||||
go-version: ${{env.GO_VERSION}}
|
|
||||||
cache-dependency-path: "**/*.sum"
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
apt-get update
|
|
||||||
apt-get install ca-certificates make -y
|
|
||||||
update-ca-certificates
|
|
||||||
go mod tidy
|
|
||||||
go get -u -v ./...
|
|
||||||
go mod tidy -v
|
|
||||||
|
|
||||||
- name: Run unit tests
|
|
||||||
run: |
|
|
||||||
CI_RUN=${CI} make test
|
|
||||||
git config --global --add safe.directory /__w/graphql-monitoring-proxy/graphql-monitoring-proxy
|
|
||||||
|
|
||||||
- name: Commit changes
|
|
||||||
uses: stefanzweifel/git-auto-commit-action@v5
|
|
||||||
with:
|
|
||||||
commit_message: "Update go.mod and go.sum"
|
|
||||||
commit_options: "--no-verify --signoff"
|
|
||||||
file_pattern: "go.mod go.sum"
|
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
paths-ignore:
|
||||||
|
- "**.md"
|
||||||
|
- "**/release.yaml"
|
||||||
|
- "static/**"
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
packages: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
uses: lukaszraczylo/shared-actions/.github/workflows/go-release.yaml@main
|
||||||
|
with:
|
||||||
|
go-version: "1.24"
|
||||||
|
docker-enabled: true
|
||||||
|
secrets: inherit
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
name: Test and release
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
push:
|
|
||||||
paths-ignore:
|
|
||||||
- "**/**.md"
|
|
||||||
- "**/**.yaml"
|
|
||||||
- "static/**"
|
|
||||||
branches:
|
|
||||||
- "main"
|
|
||||||
|
|
||||||
env:
|
|
||||||
GO_VERSION: ">=1.21"
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
# deployments permission to deploy GitHub pages website
|
|
||||||
deployments: write
|
|
||||||
# contents permission to update benchmark contents in gh-pages branch
|
|
||||||
contents: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
shared:
|
|
||||||
uses: telegram-bot-app/ci-scripts/.github/workflows/build-test-publish-inject.yaml@main
|
|
||||||
with:
|
|
||||||
enable-code-scans: false
|
|
||||||
should-deploy: false
|
|
||||||
secrets:
|
|
||||||
ghcr-token: ${{ secrets.GHCR_TOKEN }}
|
|
||||||
|
|
||||||
test:
|
|
||||||
name: "Benchmarking the results"
|
|
||||||
needs: [shared]
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
container: golang:1
|
|
||||||
# container: github/super-linter:v4
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install Go
|
|
||||||
uses: actions/setup-go@v5
|
|
||||||
with:
|
|
||||||
go-version: ${{env.GO_VERSION}}
|
|
||||||
cache-dependency-path: "**/*.sum"
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
apt-get update
|
|
||||||
apt-get install ca-certificates make -y
|
|
||||||
update-ca-certificates
|
|
||||||
go mod tidy
|
|
||||||
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
||||||
|
|
||||||
- name: Run benchmark
|
|
||||||
run: |
|
|
||||||
go test -bench=. -benchmem ./... -run=^# | tee output.txt
|
|
||||||
|
|
||||||
- name: Store benchmark result
|
|
||||||
uses: benchmark-action/github-action-benchmark@v1
|
|
||||||
with:
|
|
||||||
tool: "go"
|
|
||||||
output-file-path: output.txt
|
|
||||||
fail-on-alert: true
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
comment-on-alert: true
|
|
||||||
summary-always: true
|
|
||||||
# auto-push only if it's on main branch
|
|
||||||
auto-push: true
|
|
||||||
gh-pages-branch: "gh-pages"
|
|
||||||
benchmark-data-dir-path: "docs"
|
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
version: 2
|
||||||
|
|
||||||
|
before:
|
||||||
|
hooks:
|
||||||
|
- go mod tidy
|
||||||
|
|
||||||
|
builds:
|
||||||
|
- id: graphql-proxy
|
||||||
|
main: .
|
||||||
|
binary: graphql-proxy
|
||||||
|
env:
|
||||||
|
- CGO_ENABLED=0
|
||||||
|
goos:
|
||||||
|
- linux
|
||||||
|
- darwin
|
||||||
|
- windows
|
||||||
|
goarch:
|
||||||
|
- amd64
|
||||||
|
- arm64
|
||||||
|
ldflags:
|
||||||
|
- -s -w
|
||||||
|
|
||||||
|
archives:
|
||||||
|
- id: graphql-proxy
|
||||||
|
formats: [tar.gz]
|
||||||
|
name_template: "graphql-proxy-{{ .Os }}-{{ .Arch }}"
|
||||||
|
format_overrides:
|
||||||
|
- goos: windows
|
||||||
|
formats: [zip]
|
||||||
|
files:
|
||||||
|
- LICENSE
|
||||||
|
- README.md
|
||||||
|
|
||||||
|
checksum:
|
||||||
|
name_template: "graphql-proxy-checksums.txt"
|
||||||
|
algorithm: sha256
|
||||||
|
|
||||||
|
changelog:
|
||||||
|
sort: asc
|
||||||
|
filters:
|
||||||
|
exclude:
|
||||||
|
- '^docs:'
|
||||||
|
- '^test:'
|
||||||
|
- '^Merge'
|
||||||
|
- '^WIP'
|
||||||
|
- '^Update go.mod'
|
||||||
|
|
||||||
|
release:
|
||||||
|
github:
|
||||||
|
owner: lukaszraczylo
|
||||||
|
name: graphql-monitoring-proxy
|
||||||
|
name_template: "version {{.Version}}"
|
||||||
|
draft: false
|
||||||
|
prerelease: auto
|
||||||
|
|
||||||
|
dockers_v2:
|
||||||
|
- images:
|
||||||
|
- "ghcr.io/lukaszraczylo/graphql-monitoring-proxy"
|
||||||
|
tags:
|
||||||
|
- "{{ .Version }}"
|
||||||
|
- "latest"
|
||||||
|
platforms:
|
||||||
|
- linux/amd64
|
||||||
|
- linux/arm64
|
||||||
|
dockerfile: Dockerfile.goreleaser
|
||||||
|
extra_files:
|
||||||
|
- static/app
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
FROM gcr.io/distroless/base-debian12:nonroot
|
||||||
|
ARG TARGETPLATFORM
|
||||||
|
WORKDIR /go/src/app
|
||||||
|
COPY --chmod=777 --chown=nonroot:nonroot static/app /go/src/app
|
||||||
|
COPY ${TARGETPLATFORM}/graphql-proxy /go/src/app/graphql-proxy
|
||||||
|
ENTRYPOINT ["/go/src/app/graphql-proxy"]
|
||||||
Reference in New Issue
Block a user