name: Release Packaging on: push: tags: - 'release-*' - 'playtest-*' - 'devtest-*' permissions: contents: write # for release creation (svenstaro/upload-release-action) jobs: source: name: Source Tarball runs-on: ubuntu-22.04 steps: - name: Clone Repository uses: actions/checkout@v6 - name: Prepare Environment run: echo "GIT_TAG=${GITHUB_REF#refs/tags/}" >> ${GITHUB_ENV} - name: Package Source run: | mkdir -p build/source ./packaging/source/buildpackage.sh "${GIT_TAG}" "${PWD}/build/source" - name: Upload Packages uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} tag: ${{ github.ref }} overwrite: true file_glob: true file: build/source/* linux: name: Linux AppImages runs-on: ubuntu-22.04 steps: - name: Clone Repository uses: actions/checkout@v6 - name: Install .NET 8.0 uses: actions/setup-dotnet@v5 with: dotnet-version: '8.0.x' - name: Prepare Environment run: echo "GIT_TAG=${GITHUB_REF#refs/tags/}" >> ${GITHUB_ENV} - name: Package AppImages run: | mkdir -p build/linux sudo apt-get install -y desktop-file-utils ./packaging/linux/buildpackage.sh "${GIT_TAG}" "${PWD}/build/linux" - name: Upload Packages env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} shell: bash run: | gh release upload ${{ github.ref_name }} build/linux/* macos: name: macOS Disk Image runs-on: macos-13 steps: - name: Clone Repository uses: actions/checkout@v6 - name: Install .NET 8.0 uses: actions/setup-dotnet@v5 with: dotnet-version: '8.0.x' - name: Prepare Environment run: echo "GIT_TAG=${GITHUB_REF#refs/tags/}" >> ${GITHUB_ENV} - name: Package Disk Image env: MACOS_DEVELOPER_IDENTITY: ${{ secrets.MACOS_DEVELOPER_IDENTITY }} MACOS_DEVELOPER_CERTIFICATE_BASE64: ${{ secrets.MACOS_DEVELOPER_CERTIFICATE_BASE64 }} MACOS_DEVELOPER_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_DEVELOPER_CERTIFICATE_PASSWORD }} MACOS_DEVELOPER_USERNAME: ${{ secrets.MACOS_DEVELOPER_USERNAME }} MACOS_DEVELOPER_PASSWORD: ${{ secrets.MACOS_DEVELOPER_PASSWORD }} run: | mkdir -p build/macos ./packaging/macos/buildpackage.sh "${GIT_TAG}" "${PWD}/build/macos" - name: Upload Package env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} shell: bash run: | gh release upload ${{ github.ref_name }} build/macos/* windows: name: Windows Installers runs-on: ubuntu-22.04 steps: - name: Clone Repository uses: actions/checkout@v6 - name: Install .NET 8.0 uses: actions/setup-dotnet@v5 with: dotnet-version: '8.0.x' - name: Prepare Environment run: | echo "GIT_TAG=${GITHUB_REF#refs/tags/}" >> ${GITHUB_ENV} sudo apt-get update sudo apt-get install nsis wine64 - name: Package Installers run: | mkdir -p build/windows ./packaging/windows/buildpackage.sh "${GIT_TAG}" "${PWD}/build/windows" - name: Upload Installer id: unsigned-artifact if: github.repository == 'openra/openra' uses: actions/upload-artifact@v6 with: path: build/windows/*.exe - name: Microsoft Authenticode id: signpath if: github.repository == 'openra/openra' uses: signpath/github-action-submit-signing-request@v2 with: api-token: '${{ secrets.SIGNPATH_API_TOKEN }}' organization-id: '${{ secrets.SIGNPATH_ORGANISATION_ID }}' project-slug: 'OpenRA' signing-policy-slug: 'release-signing' github-artifact-id: '${{ steps.unsigned-artifact.outputs.artifact-id }}' wait-for-completion: true output-artifact-directory: 'build/windows/signed/' parameters: | version: ${{ toJSON(github.ref_name) }} - name: Upload Packages env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} shell: bash run: | gh release upload "${{ github.ref_name }}" build/windows/*.zip if [ "${GITHUB_REPOSITORY}" = "openra/openra" ]; then gh release upload "${{ github.ref_name }}" build/windows/signed/*.exe else gh release upload "${{ github.ref_name }}" build/windows/*.exe fi