diff --git a/.github/workflows/build_linux.yml b/.github/workflows/build_linux_autobuild.yml similarity index 96% rename from .github/workflows/build_linux.yml rename to .github/workflows/build_linux_autobuild.yml index 34f8f86..21cef99 100644 --- a/.github/workflows/build_linux.yml +++ b/.github/workflows/build_linux_autobuild.yml @@ -20,6 +20,8 @@ jobs: steps: - name: Check out code into the Go module directory uses: actions/checkout@v3 + with: + ref: v3 - name: Install Go uses: actions/setup-go@v3 @@ -83,7 +85,7 @@ jobs: tag: auto_build body: | This is only a latest build from master - **Version: https://github.com/babyname/fate/commit/${{ github.sha }}** + ** Version: https://github.com/babyname/fate/commit/${{ github.sha }} ** token: ${{ secrets.GITHUB_TOKEN }} draft: false prerelease: false diff --git a/.github/workflows/build_linux_tag.yml b/.github/workflows/build_linux_tag.yml new file mode 100644 index 0000000..1887c4e --- /dev/null +++ b/.github/workflows/build_linux_tag.yml @@ -0,0 +1,87 @@ +name: Build Linux + +on: + push: + tags: + - "*" +env: + UPLOAD_BIN_FILE: true + +jobs: + build: + name: Build + strategy: + matrix: + go-version: [1.22.x] + platform: [ubuntu-latest] + arch: [386, amd64] + runs-on: ${{ matrix.platform }} + steps: + - name: Check out code into the Go module directory + uses: actions/checkout@v3 + with: + ref: v3 + + - name: Install Go + uses: actions/setup-go@v3 + with: + go-version: ${{ matrix.go-version }} + + - name: Build ${{ matrix.platform }} ${{ matrix.arch }} with Go + if: (matrix.platform == 'ubuntu-latest' || matrix.platform == 'macos-latest') && matrix.arch == 'amd64' && env.UPLOAD_BIN_FILE + id: build_linux_amd64 + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: "true" + run: | + go mod tidy + export GOARCH=${{ matrix.arch }} + echo "FATENAME=fate_$(go env GOOS)_$(go env GOARCH)" >> $GITHUB_ENV + echo "$(go env GOOS) $(go env GOARCH)" + + echo "building" + go build -o fate_$(go env GOOS)_$(go env GOARCH) -v ./cmd/console + + echo "compress" + tar -zcvf fate_$(go env GOOS)_$(go env GOARCH).tar.gz ./fate_$(go env GOOS)_$(go env GOARCH) + + - name: Build ${{ matrix.platform }} ${{ matrix.arch }} with Go + if: matrix.platform == 'ubuntu-latest' && matrix.arch == '386' && env.UPLOAD_BIN_FILE + id: build_linux_386 + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: "true" + run: | + go mod tidy + export GOARCH=${{ matrix.arch }} + echo "FATENAME=fate_$(go env GOOS)_$(go env GOARCH)" >> $GITHUB_ENV + echo "$(go env GOOS) $(go env GOARCH)" + + echo "building" + go build -o fate_$(go env GOOS)_$(go env GOARCH) -v ./cmd/console + + echo "compress" + tar -zcvf fate_$(go env GOOS)_$(go env GOARCH).tar.gz ./fate_$(go env GOOS)_$(go env GOARCH) + + - name: Upload Linux + uses: actions/upload-artifact@master + if: (matrix.platform == 'ubuntu-latest' || matrix.platform == 'macos-latest') && env.UPLOAD_BIN_FILE + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: "true" + with: + name: ${{ env.FATENAME }}.tar.gz + path: ${{ env.FATENAME }}.tar.gz + + - name: Create Release + id: create_release_linux + if: (matrix.platform == 'ubuntu-latest' || matrix.platform == 'macos-latest') && env.UPLOAD_BIN_FILE + uses: ncipollo/release-action@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + ACTIONS_ALLOW_UNSECURE_COMMANDS: "true" + with: + artifacts: "${{ env.FATENAME }}.tar.gz" + allowUpdates: true + commit: v3 + body: | + This is only a latest build from master + ** Version: https://github.com/babyname/fate/commit/${{ github.sha }} ** + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/build_macos.yml b/.github/workflows/build_macos_autobuild.yml similarity index 98% rename from .github/workflows/build_macos.yml rename to .github/workflows/build_macos_autobuild.yml index 10edc0b..d2d50d5 100644 --- a/.github/workflows/build_macos.yml +++ b/.github/workflows/build_macos_autobuild.yml @@ -20,6 +20,8 @@ jobs: steps: - name: Check out code into the Go module directory uses: actions/checkout@v3 + with: + ref: v3 - name: Install Go uses: actions/setup-go@v3 diff --git a/.github/workflows/build_macos_tag.yml b/.github/workflows/build_macos_tag.yml new file mode 100644 index 0000000..e677be5 --- /dev/null +++ b/.github/workflows/build_macos_tag.yml @@ -0,0 +1,87 @@ +name: Build Macos + +on: + push: + tags: + - "*" +env: + UPLOAD_BIN_FILE: true + +jobs: + build: + name: Build + strategy: + matrix: + go-version: [1.22.x] + platform: [macos-latest] + arch: [386, amd64] + runs-on: ${{ matrix.platform }} + steps: + - name: Check out code into the Go module directory + uses: actions/checkout@v3 + with: + ref: v3 + + - name: Install Go + uses: actions/setup-go@v3 + with: + go-version: ${{ matrix.go-version }} + + - name: Build ${{ matrix.platform }} ${{ matrix.arch }} with Go + if: (matrix.platform == 'ubuntu-latest' || matrix.platform == 'macos-latest') && matrix.arch == 'amd64' && env.UPLOAD_BIN_FILE + id: build_linux_amd64 + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: "true" + run: | + go mod tidy + export GOARCH=${{ matrix.arch }} + echo "FATENAME=fate_$(go env GOOS)_$(go env GOARCH)" >> $GITHUB_ENV + echo "$(go env GOOS) $(go env GOARCH)" + + echo "building" + go build -o fate_$(go env GOOS)_$(go env GOARCH) -v ./cmd/console + + echo "compress" + tar -zcvf fate_$(go env GOOS)_$(go env GOARCH).tar.gz ./fate_$(go env GOOS)_$(go env GOARCH) + + - name: Build ${{ matrix.platform }} ${{ matrix.arch }} with Go + if: matrix.platform == 'ubuntu-latest' && matrix.arch == '386' && env.UPLOAD_BIN_FILE + id: build_linux_386 + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: "true" + run: | + go mod tidy + export GOARCH=${{ matrix.arch }} + echo "FATENAME=fate_$(go env GOOS)_$(go env GOARCH)" >> $GITHUB_ENV + echo "$(go env GOOS) $(go env GOARCH)" + + echo "building" + go build -o fate_$(go env GOOS)_$(go env GOARCH) -v ./cmd/console + + echo "compress" + tar -zcvf fate_$(go env GOOS)_$(go env GOARCH).tar.gz ./fate_$(go env GOOS)_$(go env GOARCH) + + - name: Upload Linux + uses: actions/upload-artifact@master + if: (matrix.platform == 'ubuntu-latest' || matrix.platform == 'macos-latest') && env.UPLOAD_BIN_FILE + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: "true" + with: + name: ${{ env.FATENAME }}.tar.gz + path: ${{ env.FATENAME }}.tar.gz + + - name: Create Release + id: create_release_linux + if: (matrix.platform == 'ubuntu-latest' || matrix.platform == 'macos-latest') && env.UPLOAD_BIN_FILE + uses: ncipollo/release-action@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + ACTIONS_ALLOW_UNSECURE_COMMANDS: "true" + with: + artifacts: "${{ env.FATENAME }}.tar.gz" + allowUpdates: true + commit: v3 + body: | + This is only a latest build from master + ** Version: https://github.com/babyname/fate/commit/${{ github.sha }} ** + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/build_windows.yml b/.github/workflows/build_windows_autobuild.yml similarity index 96% rename from .github/workflows/build_windows.yml rename to .github/workflows/build_windows_autobuild.yml index 7d600ab..9fe6263 100644 --- a/.github/workflows/build_windows.yml +++ b/.github/workflows/build_windows_autobuild.yml @@ -29,6 +29,8 @@ jobs: - name: Check out code into the Go module directory uses: actions/checkout@v3 + with: + ref: v3 - name: Install Go uses: actions/setup-go@v3 @@ -88,7 +90,7 @@ jobs: tag: auto_build body: | This is only a latest build from master - **Version: https://github.com/babyname/fate/commit/${{ github.sha }}** + ** Version: https://github.com/babyname/fate/commit/${{ github.sha }} ** token: ${{ secrets.GITHUB_TOKEN }} draft: false prerelease: false diff --git a/.github/workflows/build_windows_tag.yml b/.github/workflows/build_windows_tag.yml new file mode 100644 index 0000000..77af872 --- /dev/null +++ b/.github/workflows/build_windows_tag.yml @@ -0,0 +1,92 @@ +name: Build Windows + +on: + push: + tags: + - "*" +env: + UPLOAD_BIN_FILE: true + +jobs: + build: + name: Build + strategy: + matrix: + go-version: [1.22.x] + platform: [windows-latest] + arch: [386, amd64] + runs-on: ${{ matrix.platform }} + steps: + - name: Cleanup pre-installed tools + if: matrix.platform != 'windows-latest' + run: | + # This is a fix for https://github.com/actions/virtual-environments/issues/1918 + sudo rm -rf /usr/share/dotnet + sudo rm -rf /opt/ghc + sudo rm -rf "/usr/local/share/boost" + sudo rm -rf "$AGENT_TOOLSDIRECTORY" + + - name: Check out code into the Go module directory + uses: actions/checkout@v3 + with: + ref: v3 + + - name: Install Go + uses: actions/setup-go@v3 + with: + go-version: ${{ matrix.go-version }} + + - name: Build ${{ matrix.platform }} ${{ matrix.arch }} with Go + if: matrix.platform == 'windows-latest' && matrix.arch == 'amd64' && env.UPLOAD_BIN_FILE + id: build_windows_amd64 + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: "true" + run: | + go mod tidy + set GOARCH=${{ matrix.arch }} + echo "FATENAME=fate_windows_amd64" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "building" + go build -o fate_windows_amd64.exe -v ./cmd/console + + echo "compress" + Compress-Archive -Path fate_windows_amd64.exe -DestinationPath fate_windows_amd64.zip + + - name: Build ${{ matrix.platform }} ${{ matrix.arch }} with Go + if: matrix.platform == 'windows-latest' && matrix.arch == '386' && env.UPLOAD_BIN_FILE + id: build_windows_386 + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: "true" + run: | + go mod tidy + set GOARCH=${{ matrix.arch }} + echo "FATENAME=fate_windows_386" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "building" + go build -o fate_windows_386.exe -v ./cmd/console + + echo "compress" + Compress-Archive -Path fate_windows_386.exe -DestinationPath fate_windows_386.zip + + - name: Upload Windows + uses: actions/upload-artifact@master + if: matrix.platform == 'windows-latest' && env.UPLOAD_BIN_FILE + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: "true" + with: + name: ${{ env.FATENAME }}.zip + path: ${{ env.FATENAME }}.zip + + - name: Create Release + id: create_release_windows + if: matrix.platform == 'windows-latest' && env.UPLOAD_BIN_FILE + uses: ncipollo/release-action@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + ACTIONS_ALLOW_UNSECURE_COMMANDS: "true" + with: + artifacts: "${{ env.FATENAME }}.zip" + allowUpdates: true + commit: v3 + body: | + This is only a latest build from master + ** Version: https://github.com/babyname/fate/commit/${{ github.sha }} ** + token: ${{ secrets.GITHUB_TOKEN }}