|
| 1 | +name: Upload release |
| 2 | +env: |
| 3 | + MOD_ID: 3484 |
| 4 | + KSP2_ID: 22407 |
| 5 | + |
| 6 | +on: |
| 7 | + release: |
| 8 | + types: [ "published" ] |
| 9 | + |
| 10 | +jobs: |
| 11 | + publish: |
| 12 | + runs-on: ubuntu-latest |
| 13 | + permissions: write-all |
| 14 | + steps: |
| 15 | + - name: Checkout repository |
| 16 | + uses: actions/checkout@v4 |
| 17 | + |
| 18 | + - name: Download NuGet |
| 19 | + id: download-nuget |
| 20 | + run: | |
| 21 | + sudo curl -o /usr/local/bin/nuget.exe https://dist.nuget.org/win-x86-commandline/latest/nuget.exe |
| 22 | +
|
| 23 | + - name: Install jq |
| 24 | + |
| 25 | + |
| 26 | + - name: Build the solution |
| 27 | + run: | |
| 28 | + version=$(jq -r '.version' plugin_template/swinfo.json) |
| 29 | + echo "Version is $version" |
| 30 | + echo "version=$version" >> $GITHUB_ENV |
| 31 | + dotnet build "CommunityResources.sln" -c Release |
| 32 | + echo "release_filename=CommunityResources-$version.zip" >> $GITHUB_ENV |
| 33 | + echo "zip=$(ls -1 dist/CommunityResources-*.zip | head -n 1)" >> $GITHUB_ENV |
| 34 | + echo "upload_url=$(wget -qO- https://api.github.com/repos/$GITHUB_REPOSITORY/releases | jq '.[0].upload_url' | tr -d \")" >> $GITHUB_ENV |
| 35 | + echo "changelog=$(wget -qO- https://api.github.com/repos/$GITHUB_REPOSITORY/releases | jq '.[0].body' | tr -d \")" >> $GITHUB_ENV |
| 36 | + echo "${{ env.changelog }}" > ./changelog.md |
| 37 | +
|
| 38 | + - name: Upload zip to release |
| 39 | + uses: shogo82148/[email protected] |
| 40 | + env: |
| 41 | + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| 42 | + with: |
| 43 | + upload_url: ${{ env.upload_url }} |
| 44 | + asset_path: ${{ env.zip }} |
| 45 | + asset_name: ${{ env.release_filename }} |
| 46 | + asset_content_type: application/zip |
| 47 | + |
| 48 | + - name: Add Mask |
| 49 | + run: echo "::add-mask::${{ secrets.SPACEDOCK_PASSWORD }}" |
| 50 | + |
| 51 | + - name: Log in to spacedock |
| 52 | + run: | |
| 53 | + login_response=$(curl -F username=${{ secrets.SPACEDOCK_USER }} -F password=${{ secrets.SPACEDOCK_PASSWORD }} -c ./cookies "https://spacedock.info/api/login") |
| 54 | + login_errored=$(echo $login_response | jq .error) |
| 55 | + if [ "$login_errored" == "true" ]; then |
| 56 | + echo "Login to space dock errored: $(echo $login_response | jq .reason)" |
| 57 | + exit 1 |
| 58 | + else |
| 59 | + echo "Login to space dock successful" |
| 60 | + fi |
| 61 | + |
| 62 | + - name: Query latest game version |
| 63 | + run: | |
| 64 | + echo "LATEST_GAME_VERSION=$(curl 'https://spacedock.info/api/${{ env.KSP2_ID }}/versions' | jq '.[0].friendly_version' | tr -d \")" >> $GITHUB_ENV |
| 65 | + |
| 66 | + - name: Update mod on spacedock |
| 67 | + run: | |
| 68 | + result=$(curl -b ./cookies -F "version=${{ env.version }}" -F "changelog=@./changelog.md" -F "game-version=${{ env.LATEST_GAME_VERSION }}" -F "notify-followers=yes" -F "zipball=@${{ env.zip }}" "https://spacedock.info/api/mod/${{ env.MOD_ID }}/update") |
| 69 | + errored=$(echo $result | jq .error) |
| 70 | + if [ "$errored" == "true" ]; then |
| 71 | + echo "Upload to space dock errored: $(echo $result | jq .reason)" |
| 72 | + exit 1 |
| 73 | + else |
| 74 | + echo "Upload to space dock successful" |
| 75 | + fi |
0 commit comments