summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/ci.yml2
-rw-r--r--.github/workflows/cross-build.yml56
2 files changed, 57 insertions, 1 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 67e15d4..8584455 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1,6 +1,6 @@
# Used as inspiration: https://github.com/mvdan/github-actions-golang
-name: Cross-Platform
+name: Tests
on:
push:
diff --git a/.github/workflows/cross-build.yml b/.github/workflows/cross-build.yml
new file mode 100644
index 0000000..a935cba
--- /dev/null
+++ b/.github/workflows/cross-build.yml
@@ -0,0 +1,56 @@
+name: Cross-Build
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ cross-build-test:
+ strategy:
+ fail-fast: false
+ matrix:
+ goos: ['android', 'linux', 'solaris', 'illumos', 'dragonfly', 'freebsd', 'openbsd', 'plan9', 'windows', 'darwin', 'netbsd']
+ go-version: [ 1.14.x ]
+ runs-on: ubuntu-latest
+ continue-on-error: true
+ steps:
+ - name: Install Go
+ uses: actions/setup-go@v2
+ with:
+ go-version: ${{ matrix.go-version }}
+ - name: Print Go version and environment
+ id: vars
+ run: |
+ printf "Using go at: $(which go)\n"
+ printf "Go version: $(go version)\n"
+ printf "\n\nGo environment:\n\n"
+ go env
+ printf "\n\nSystem environment:\n\n"
+ env
+ echo "::set-output name=go_cache::$(go env GOCACHE)"
+ - name: Cache the build cache
+ uses: actions/cache@v1
+ with:
+ path: ${{ steps.vars.outputs.go_cache }}
+ key: cross-build-go-${{ matrix.goos }}-${{ hashFiles('**/go.sum') }}
+ restore-keys: |
+ cross-build-go-${{ matrix.goos }}
+ - name: Checkout code into the Go module directory
+ uses: actions/checkout@v2
+ - name: Run Build
+ env:
+ CGO_ENABLED: 0
+ GOOS: ${{ matrix.goos }}
+ shell: bash
+ continue-on-error: true
+ working-directory: ./cmd/caddy
+ run: |
+ GOOS=$GOOS go build -trimpath -o caddy-"$GOOS"-amd64 2> /dev/null
+ if [ $? -ne 0 ]; then
+ echo "::warning ::$GOOS Build Failed"
+ exit 0
+ fi