name: Release on: push: tags: - "v*" jobs: release: name: Release runs-on: ubuntu-22.04 steps: - name: Code Checkout uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v4 with: go-version: "1.20.11" - name: Build release binaries env: CGO_ENABLED: 0 REF: ${{ github.ref }} run: | GOARCH=amd64 go build -o dist/wings_linux_amd64 -v -trimpath -ldflags="-s -w -X github.com/pterodactyl/wings/system.Version=${REF:11}" github.com/pterodactyl/wings chmod 755 dist/wings_linux_amd64 GOARCH=arm64 go build -o dist/wings_linux_arm64 -v -trimpath -ldflags="-s -w -X github.com/pterodactyl/wings/system.Version=${REF:11}" github.com/pterodactyl/wings chmod 755 dist/wings_linux_arm64 - name: Extract changelog env: REF: ${{ github.ref }} run: | sed -n "/^## ${REF:10}/,/^## /{/^## /b;p}" CHANGELOG.md > ./RELEASE_CHANGELOG - name: Create checksum and add to changelog run: | SUM=`cd dist && sha256sum wings_linux_amd64` SUM2=`cd dist && sha256sum wings_linux_arm64` echo -e "\n#### SHA256 Checksum\n\`\`\`\n$SUM\n$SUM2\n\`\`\`\n" >> ./RELEASE_CHANGELOG echo -e "$SUM\n$SUM2" > checksums.txt - name: Create release branch env: REF: ${{ github.ref }} run: | BRANCH=release/${REF:10} git config --local user.email "ci@pterodactyl.io" git config --local user.name "Pterodactyl CI" git checkout -b $BRANCH git push -u origin $BRANCH sed -i "s/var Version = \".*\"/var Version = \"${REF:11}\"/" system/const.go git add system/const.go git commit -m "bump version for release" git push - name: Create release id: create_release uses: softprops/action-gh-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: draft: true prerelease: ${{ contains(github.ref, 'rc') || contains(github.ref, 'beta') || contains(github.ref, 'alpha') }} body_path: ./RELEASE_CHANGELOG - name: Upload amd64 binary uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: dist/wings_linux_amd64 asset_name: wings_linux_amd64 asset_content_type: application/octet-stream - name: Upload arm64 binary uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: dist/wings_linux_arm64 asset_name: wings_linux_arm64 asset_content_type: application/octet-stream - name: Upload checksum uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ./checksums.txt asset_name: checksums.txt asset_content_type: text/plain