name: Cross Compile Go run-name: Build and Bundle on: push: branches: - master jobs: build: runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v5 with: go-version: '1.23' # Build ARM64 - name: Build ARM64 run: GOOS=linux GOARCH=arm64 go build -v -o crawler_main-linux-arm64 . # Build AMD64 - name: Build AMD64 run: GOOS=linux GOARCH=amd64 go build -v -o crawler_main-linux-amd64 . # Create organized archives for download - name: Bundle Artifacts run: | # Create a directory for ARM64 release mkdir release-arm64 cp crawler_main-linux-arm64 release-arm64/crawler_main cp config.yaml release-arm64/ tar -czvf release-arm64.tar.gz -C release-arm64 . # Create a directory for AMD64 release mkdir release-amd64 cp crawler_main-linux-amd64 release-amd64/crawler_main tar -czvf release-amd64.tar.gz -C release-amd64 . - name: Upload ARM64 Artifact uses: actions/upload-artifact@v3 with: name: linux-arm64 path: release-arm64.tar.gz if-no-files-found: error - name: Upload AMD64 Artifact uses: actions/upload-artifact@v3 with: name: linux-amd64 path: release-amd64.tar.gz if-no-files-found: error