diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 000000000..5b92bfe6a --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,44 @@ +name: Build Solution + +on: + workflow_call: + inputs: + branch-postfix: + required: false + type: string + +jobs: + build: + name: Build Oxide Solution + runs-on: windows-2022 + + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + + - name: Increment Version + uses: action-pack/increment@v2 + with: + name: "VERSION" + token: ${{ secrets.REPO_ACCESS_TOKEN }} + + - name: Setup MSBuild + uses: microsoft/setup-msbuild@v1 + + - name: Restore Packages + run: nuget restore Oxide.Rust.sln + + - name: Build Solution + run: msbuild Oxide.Rust.sln -t:rebuild -property:Configuration=Release -property:Version=2.0.${{ vars.VERSION }}${{ inputs.branch-postfix }} + + - name: Compress Bundles + run: | + cd src\bin\Bundle + 7z a Oxide.Rust.zip Oxide.Rust\* + 7z a Oxide.Rust-linux.zip Oxide.Rust-linux\* + + - name: Upload Artifacts + uses: actions/upload-artifact@v3 + with: + name: ${{ github.event.repository.name }} + path: src\bin\Bundle\Oxide.*.zip diff --git a/.github/workflows/prerelease.yaml b/.github/workflows/prerelease.yaml new file mode 100644 index 000000000..49051163e --- /dev/null +++ b/.github/workflows/prerelease.yaml @@ -0,0 +1,25 @@ +name: Build and Upload Bundles to S3 + +on: + push: + branches-ignore: + - master + +jobs: + build: + name: Run Build + uses: ./.github/workflows/build.yaml + secrets: inherit + with: + branch-postfix: "-${{ github.ref_name }}" + + deploy: + name: Deploy to S3 + uses: OxideMod/Actions/.github/workflows/r2-publish.yml@main + needs: build + with: + generate-filehash: true + secrets: + CLOUDFLARE_R2_KEY: ${{ secrets.CLOUDFLARE_R2_KEY }} + CLOUDFLARE_R2_SECRET: ${{ secrets.CLOUDFLARE_R2_SECRET }} + CLOUDFLARE_R2_ENDPOINT: ${{ secrets.CLOUDFLARE_R2_ENDPOINT }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 000000000..d4efd5501 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,34 @@ +name: Build and Create Release + +on: + push: + branches: + - master + +jobs: + build: + name: Run Build + uses: ./.github/workflows/build.yaml + secrets: inherit + + release: + name: Create Release + runs-on: ubuntu-22.04 + needs: build + steps: + - name: Download Artifacts + uses: actions/download-artifact@v3 + with: + name: ${{ github.event.repository.name }} + path: artifacts + + - name: Deploy to GitHub Releases + uses: softprops/action-gh-release@v1 + with: + files: | + artifacts/Oxide.*.zip + tag_name: 2.0.${{ vars.VERSION }} + fail_on_unmatched_files: true + token: ${{ secrets.GITHUB_TOKEN }} + body: | + See https://umod.org/games/rust for changes