diff --git a/.github/workflows/ci.yml b/.github/workflows/docker.yml similarity index 95% rename from .github/workflows/ci.yml rename to .github/workflows/docker.yml index 2a53490f..0c86d5ee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/docker.yml @@ -1,4 +1,4 @@ -name: ci +name: docker on: workflow_dispatch: @@ -19,7 +19,7 @@ jobs: id: meta uses: docker/metadata-action@v4 with: - images: alexxit/go2rtc + images: ${{ github.repository }} tags: | type=ref,event=branch type=semver,pattern={{version}},enable=false @@ -29,7 +29,7 @@ jobs: id: meta-hw uses: docker/metadata-action@v4 with: - images: alexxit/go2rtc + images: ${{ github.repository }} flavor: | suffix=-hardware latest=false diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..27ea8970 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,90 @@ +name: release + +on: + workflow_dispatch: + push: + tags: + - 'v*' + +jobs: + build-and-release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Generate changelog + run: | + echo -e "$(git log $(git describe --tags --abbrev=0)..HEAD --oneline | awk '{print "- "$0}')" > CHANGELOG.md + - name: Build Go binaries + run: | + #!/bin/bash + + mkdir artifacts + export GOOS=windows + export GOARCH=amd64 + export FILENAME=artifacts/go2rtc_win64.zip + go build -ldflags "-s -w" -trimpath && 7z a -mx9 -sdel "$FILENAME" go2rtc.exe + + export GOOS=windows + export GOARCH=386 + export FILENAME=artifacts/go2rtc_win32.zip + go build -ldflags "-s -w" -trimpath && 7z a -mx9 -sdel "$FILENAME" go2rtc.exe + + export GOOS=windows + export GOARCH=arm64 + export FILENAME=artifacts/go2rtc_win_arm64.zip + go build -ldflags "-s -w" -trimpath && 7z a -mx9 -sdel "$FILENAME" go2rtc.exe + + export GOOS=linux + export GOARCH=amd64 + export FILENAME=artifacts/go2rtc_linux_amd64 + go build -ldflags "-s -w" -trimpath -o "$FILENAME" + + export GOOS=linux + export GOARCH=386 + export FILENAME=artifacts/go2rtc_linux_i386 + go build -ldflags "-s -w" -trimpath -o "$FILENAME" + + export GOOS=linux + export GOARCH=arm64 + export FILENAME=artifacts/go2rtc_linux_arm64 + go build -ldflags "-s -w" -trimpath -o "$FILENAME" + + export GOOS=linux + export GOARCH=arm + export GOARM=7 + export FILENAME=artifacts/go2rtc_linux_arm + go build -ldflags "-s -w" -trimpath -o "$FILENAME" + + export GOOS=linux + export GOARCH=mipsle + export FILENAME=artifacts/go2rtc_linux_mipsel + go build -ldflags "-s -w" -trimpath -o "$FILENAME" + + export GOOS=darwin + export GOARCH=amd64 + export FILENAME=go2rtc_mac_amd64.zip + go build -ldflags "-s -w" -trimpath && 7z a -mx9 -sdel "$FILENAME" go2rtc + + export GOOS=darwin + export GOARCH=arm64 + export FILENAME=go2rtc_mac_arm64.zip + go build -ldflags "-s -w" -trimpath && 7z a -mx9 -sdel "$FILENAME" go2rtc + + parallel --jobs $(nproc) "upx {}" ::: artifacts/go2rtc_linux_* + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + if: ${{ failure() }} + - name: Set env + run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV + - name: Create GitHub release + uses: softprops/action-gh-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + files: artifacts/* + generate_release_notes: true + name: Release ${{ env.RELEASE_VERSION }} + body_path: CHANGELOG.md + draft: false + prerelease: false