summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Tanlak <philipp.tanlak@gmail.com>2023-11-13 13:54:51 +0100
committerPhilipp Tanlak <philipp.tanlak@gmail.com>2023-11-13 14:01:32 +0100
commiteae10426cd805ecc0a0459b61639e48e6cd913ad (patch)
tree101267bf661c4aab812eae275be57ffe202a5bbf
parent72f83468299f2510ada7bb2afdc2ca841127fd24 (diff)
Enable cgo compilation in goreleaser (#7)v0.4.1
-rw-r--r--.github/workflows/release.yaml32
-rw-r--r--.goreleaser.yaml100
-rw-r--r--docs/getting-started/installation.md2
-rw-r--r--docs/readme.md16
4 files changed, 125 insertions, 25 deletions
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 3b95fba..19b0e7c 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -8,6 +8,11 @@ on:
permissions:
contents: write
+env:
+ GO_VERSION: '1.21.4'
+ PKG_NAME: 'github.com/philippta/flyscrape'
+ DOCKER_IMG: ghcr.io/goreleaser/goreleaser-cross
+
jobs:
release:
name: Release
@@ -17,16 +22,19 @@ jobs:
with:
fetch-depth: 0
- - run: git fetch --force --tags
-
- - uses: actions/setup-go@v4
- with:
- go-version: "1.21.3"
+ - name: Fetch Git tags
+ run: git fetch --force --tags
- - uses: goreleaser/goreleaser-action@v5
- with:
- distribution: goreleaser
- version: latest
- args: release --clean
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Build and Release
+ run: |
+ docker run \
+ --rm \
+ --privileged \
+ -v /var/run/docker.sock:/var/run/docker.sock \
+ -v $(pwd)/sysroot:/sysroot \
+ -v $(pwd):/go/src/${PKG_NAME} \
+ -w /go/src/${PKG_NAME} \
+ -e CGO_ENABLED=1 \
+ -e GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} \
+ ghcr.io/goreleaser/goreleaser-cross:v${GO_VERSION} \
+ release --clean
diff --git a/.goreleaser.yaml b/.goreleaser.yaml
index 6556f68..0f7bc18 100644
--- a/.goreleaser.yaml
+++ b/.goreleaser.yaml
@@ -1,24 +1,116 @@
before:
hooks:
- go mod tidy
+ - go test ./...
builds:
- - main: ./cmd/flyscrape
+ # Linux amd64
+ - id: linux-amd64
+ main: ./cmd/flyscrape
env:
- - CGO_ENABLED=0
+ - CGO_ENABLED=1
+ - CC=x86_64-linux-gnu-gcc
+ - CXX=x86_64-linux-gnu-g++
+ ldflags:
+ - -s -w
+ flags:
+ - -mod=readonly
+ tags:
+ - osusergo
+ - netgo
+ - sqlite_omit_load_extension
goos:
- linux
- - windows
+ goarch:
+ - amd64
+
+ # Linux arm64
+ - id: linux-arm64
+ main: ./cmd/flyscrape
+ env:
+ - CGO_ENABLED=1
+ - CC=aarch64-linux-gnu-gcc
+ - CXX=aarch64-linux-gnu-g++
+ ldflags:
+ - -s -w
+ flags:
+ - -mod=readonly
+ tags:
+ - osusergo
+ - netgo
+ - sqlite_omit_load_extension
+ goos:
+ - linux
+ goarch:
+ - arm64
+ goarm:
+ - 7
+
+ # MacOS amd64
+ - id: macos-amd64
+ main: ./cmd/flyscrape
+ env:
+ - CGO_ENABLED=1
+ - CC=o64-clang
+ - CXX=o64-clang++
+ ldflags:
+ - -s -w
+ flags:
+ - -mod=readonly
+ tags:
+ - osusergo
+ - netgo
+ - sqlite_omit_load_extension
+ goos:
- darwin
goarch:
- amd64
+
+ # MacOS arm64
+ - id: macos-arm64
+ main: ./cmd/flyscrape
+ env:
+ - CGO_ENABLED=1
+ - CC=oa64-clang
+ - CXX=oa64-clang++
+ ldflags:
+ - -s -w
+ flags:
+ - -mod=readonly
+ tags:
+ - osusergo
+ - netgo
+ - sqlite_omit_load_extension
+ goos:
+ - darwin
+ goarch:
- arm64
+ # Window amd64
+ - id: windows-amd64
+ main: ./cmd/flyscrape
+ env:
+ - CGO_ENABLED=1
+ - CC=x86_64-w64-mingw32-gcc
+ - CXX=x86_64-w64-mingw32-g++
+ ldflags:
+ - -s -w
+ flags:
+ - -mod=readonly
+ tags:
+ - osusergo
+ - netgo
+ - sqlite_omit_load_extension
+ goos:
+ - windows
+ goarch:
+ - amd64
+
archives:
- format: tar.gz
name_template: >-
{{ .ProjectName }}_
- {{- if eq .Os "darwin" }}mac{{else}}{{ .Os }}{{ end }}_
+ {{- if eq .Os "darwin" }}macos{{else}}{{ .Os }}{{ end }}_
{{- .Arch }}
format_overrides:
- goos: windows
diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md
index 2d14b7d..d10e99c 100644
--- a/docs/getting-started/installation.md
+++ b/docs/getting-started/installation.md
@@ -30,7 +30,7 @@ Once you have Go installed, you can proceed with installing flyscrape. Follow th
If the installation was successful, this command will display the help text of flyscrape.
-## Updating flyscrape abc
+## Updating flyscrape
To keep your flyscrape installation up to date, you can use the following command:
diff --git a/docs/readme.md b/docs/readme.md
index cb9eb5b..507ff8a 100644
--- a/docs/readme.md
+++ b/docs/readme.md
@@ -12,11 +12,11 @@
- [Start Scraping](using-flyscrape/start-scraping.md)
#### Configuration
-- [Starting URL](config/starting-url.md)
-- [Depth](config/depth.md)
-- [Link Following](config/link-following.md)
-- [Domain Filter](config/domain-filter.md)
-- [URL Filter](config/url-filter.md)
-- [Rate Limiting](config/rate-limiting.md)
-- [Caching](config/caching.md)
-- [Proxies](config/proxies.md)
+- [Starting URL](configuration/starting-url.md)
+- [Depth](configuration/depth.md)
+- [Link Following](configuration/link-following.md)
+- [Domain Filter](configuration/domain-filter.md)
+- [URL Filter](configuration/url-filter.md)
+- [Rate Limiting](configuration/rate-limiting.md)
+- [Caching](configuration/caching.md)
+- [Proxies](configuration/proxies.md)