Add CGO dependency. #36
Workflow file for this run
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
--- | |
# DMux CI testing workflow. | |
name: "Github Actions CI" | |
concurrency: # Cancel any existing runs of this workflow for this same PR | |
group: "${{ github.workflow }}-${{ github.ref }}" | |
cancel-in-progress: true | |
# This GitHub action runs your tests for each pull request and push. | |
on: # yamllint disable-line rule:truthy | |
push: | |
branches: | |
- "main" | |
- "develop" | |
tags: | |
- "[0-9]+.[0-9]+.[0-9]+" | |
- "[0-9]+.[0-9]+.[0-9]+-rc[0-9]+" | |
- "[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+" | |
- "[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+" | |
paths-ignore: | |
- "README.md" | |
- "docs/*" | |
- "Formula/*" | |
pull_request: | |
paths-ignore: | |
- "README.md" | |
- "docs/*" | |
- "Formula/*" | |
# Testing only needs permissions to read the repository contents, however release needs write permissions. | |
permissions: | |
contents: "write" | |
jobs: | |
# golangci-lint: | |
# name: "GolangCI-Lint" | |
# runs-on: "ubuntu-latest" | |
# timeout-minutes: 5 | |
# steps: | |
# - name: "Git Checkout" | |
# uses: "actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9" # v3.5.3 | |
# - name: "Setup Go Environment" | |
# uses: "actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe" # v4.1.0 | |
# with: | |
# go-version-file: "go.mod" | |
# cache: true | |
# - name: "Run GolangCI Linting Process" | |
# uses: "golangci/golangci-lint-action@v3" | |
# with: | |
# version: "v1.55" | |
# args: "--out-format=colored-line-number --tests=false --exclude-use-default=false" | |
# | |
# yamllint: | |
# name: "YAML Lint" | |
# runs-on: "ubuntu-latest" | |
# steps: | |
# - name: "Git Checkout" | |
# uses: "actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9" # v3.5.3 | |
# - name: "Run YAML Linting Process" | |
# uses: "karancode/yamllint-github-action@master" | |
# with: | |
# yamllint_strict: false | |
# yamllint_comment: true | |
# | |
# test: | |
# name: "Unit Tests" | |
# needs: | |
# - "golangci-lint" | |
# - "yamllint" | |
# runs-on: "ubuntu-latest" | |
# timeout-minutes: 15 | |
# strategy: | |
# fail-fast: false | |
# steps: | |
# - uses: "actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9" # v3.5.3 | |
# - uses: "actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe" # v4.1.0 | |
# with: | |
# go-version-file: "go.mod" | |
# cache: true | |
# - name: "Run Unit Tests" | |
# run: "make _unittest" | |
# timeout-minutes: 10 | |
build-linux-binary: | |
if: "github.ref_type == 'tag'" | |
name: "Build Linux Binaries" | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "Git Checkout" | |
uses: "actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9" # v3.5.3 | |
- name: "Setup Go Environment" | |
uses: "actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe" # v4.1.0 | |
with: | |
go-version-file: "go.mod" | |
cache: true | |
- name: "Install Musl GCC Libraries" | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y musl-tools | |
- name: "Build" | |
uses: "goreleaser/goreleaser-action@3fa32b8bb5620a2c1afe798654bbad59f9da4906" # v4.4.0 | |
with: | |
# One of 'goreleaser' (default) or 'goreleaser-pro' | |
distribution: "goreleaser" | |
version: "1.23.0" | |
args: "release --skip-publish --config .goreleaser-for-linux.yml" | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
- name: "Upload" | |
uses: "actions/upload-artifact@v4" | |
with: | |
name: "dmux-linux" | |
path: "build/dmux*" | |
build-darwin-binary: | |
if: "github.ref_type == 'tag'" | |
name: "Build Darwin Binaries" | |
runs-on: "macos-latest" | |
steps: | |
- name: "Git Checkout" | |
uses: "actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9" # v3.5.3 | |
- name: "Setup Go Environment" | |
uses: "actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe" # v4.1.0 | |
with: | |
go-version-file: "go.mod" | |
cache: true | |
- name: "Build" | |
uses: "goreleaser/goreleaser-action@3fa32b8bb5620a2c1afe798654bbad59f9da4906" # v4.4.0 | |
with: | |
# One of 'goreleaser' (default) or 'goreleaser-pro' | |
distribution: "goreleaser" | |
version: "1.23.0" | |
args: "release --skip-publish --config .goreleaser-for-darwin.yml" | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
- name: "Upload" | |
uses: "actions/upload-artifact@v4" | |
with: | |
name: "dmux-darwin" | |
path: "build/dmux*" | |
goreleaser: | |
if: "github.ref_type == 'tag'" | |
name: "Release" | |
runs-on: "ubuntu-latest" | |
needs: | |
- "build-linux-binary" | |
- "build-darwin-binary" | |
# - "golangci-lint" | |
# - "yamllint" | |
# - "test" | |
steps: | |
- name: "Git Checkout" | |
uses: "actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9" # v3.5.3 | |
- name: "Setup Go Environment" | |
uses: "actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe" # v4.1.0 | |
with: | |
go-version-file: "go.mod" | |
cache: true | |
- name: "Make Directories" | |
run: | | |
mkdir -p ./dmux-build/linux | |
mkdir -p ./dmux-build/darwin | |
- name: "Download Linux Binaries" | |
uses: "actions/download-artifact@v4" | |
with: | |
name: "dmux-linux" | |
path: "./dmux-build/linux" | |
- name: "Download Darwin Binaries" | |
uses: "actions/download-artifact@v4" | |
with: | |
name: "dmux-darwin" | |
path: "./dmux-build/darwin" | |
- name: "Merge Checksum Files" | |
run: | | |
cd ./dmux-build | |
cat ./darwin/dmux*checksums.txt >> checksums.txt | |
cat ./linux/dmux*checksums.txt >> checksums.txt | |
rm ./darwin/dmux*checksums.txt | |
rm ./linux/dmux*checksums.txt | |
- name: "Run GoReleaser Release" | |
uses: "goreleaser/goreleaser-action@3fa32b8bb5620a2c1afe798654bbad59f9da4906" # v4.4.0 | |
with: | |
# One of 'goreleaser' (default) or 'goreleaser-pro' | |
distribution: "goreleaser" | |
version: "1.23.0" | |
args: "release --snapshot --clean" | |
env: | |
GITHUB_TOKEN: "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" |