mirror of
https://github.com/Cleanuparr/Cleanuparr.git
synced 2026-06-10 14:55:34 -04:00
124 lines
5.5 KiB
YAML
124 lines
5.5 KiB
YAML
name: Build Executables
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "v*.*.*"
|
|
|
|
jobs:
|
|
release:
|
|
uses: flmorg/universal-workflows/.github/workflows/dotnet.release.yml@main
|
|
with:
|
|
githubContext: ${{ toJSON(github) }}
|
|
secrets: inherit
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
|
|
- name: Gate
|
|
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
run: |
|
|
echo "This is not a tag event. Pipeline finished."
|
|
exit
|
|
|
|
- name: Set variables
|
|
run: |
|
|
repoFullName=${{ fromJSON(inputs.githubContext).repository }}
|
|
ref=${{ fromJSON(inputs.githubContext).ref }}
|
|
releaseVersion=${ref##refs/tags/}
|
|
appVersion=${releaseVersion#v}
|
|
|
|
echo 'githubRepository=${{ github.repository }}' >> $GITHUB_ENV
|
|
echo "githubRepositoryName=${repoFullName#*/}" >> $GITHUB_ENV
|
|
echo "releaseVersion=$releaseVersion" >> $GITHUB_ENV
|
|
echo "appVersion=$appVersion" >> $GITHUB_ENV
|
|
|
|
- name: Get vault secrets
|
|
uses: hashicorp/vault-action@v2
|
|
with:
|
|
url: ${{ secrets.VAULT_HOST }}
|
|
method: approle
|
|
roleId: ${{ secrets.VAULT_ROLE_ID }}
|
|
secretId: ${{ secrets.VAULT_SECRET_ID }}
|
|
secrets:
|
|
secrets/data/github repo_readonly_pat | REPO_READONLY_PAT;
|
|
secrets/data/github packages_pat | PACKAGES_PAT
|
|
|
|
- name: Checkout target repository
|
|
uses: actions/checkout@v4
|
|
timeout-minutes: 1
|
|
with:
|
|
repository: ${{ env.githubRepository }}
|
|
ref: main
|
|
token: ${{ env.REPO_READONLY_PAT }}
|
|
|
|
- name: Setup dotnet
|
|
uses: actions/setup-dotnet@v4
|
|
with:
|
|
dotnet-version: 9.0.x
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
dotnet nuget add source --username Flaminel --password ${{ secrets.PACKAGES_PAT }} --store-password-in-clear-text --name flmorg https://nuget.pkg.github.com/flmorg/index.json
|
|
dotnet restore code/${{ inputs.executableName }}/${{ inputs.executableName }}.csproj
|
|
|
|
- name: Build win-x64
|
|
run: dotnet publish code/${{ inputs.executableName }}/${{ inputs.executableName }}.csproj -c Release --runtime win-x64 --self-contained -o artifacts/${{ env.githubRepositoryName }}-win-amd64 /p:PublishSingleFile=true /p:Version=${{ env.appVersion }}
|
|
|
|
- name: Build linux-x64
|
|
run: dotnet publish code/${{ inputs.executableName }}/${{ inputs.executableName }}.csproj -c Release --runtime linux-x64 --self-contained -o artifacts/${{ env.githubRepositoryName }}-linux-amd64 /p:PublishSingleFile=true /p:Version=${{ env.appVersion }}
|
|
|
|
- name: Build linux-arm64
|
|
run: dotnet publish code/${{ inputs.executableName }}/${{ inputs.executableName }}.csproj -c Release --runtime linux-arm64 --self-contained -o artifacts/${{ env.githubRepositoryName }}-linux-arm64 /p:PublishSingleFile=true /p:Version=${{ env.appVersion }}
|
|
|
|
- name: Build osx-x64
|
|
run: dotnet publish code/${{ inputs.executableName }}/${{ inputs.executableName }}.csproj -c Release --runtime osx-x64 --self-contained -o artifacts/${{ env.githubRepositoryName }}-osx-amd64 /p:PublishSingleFile=true /p:Version=${{ env.appVersion }}
|
|
|
|
- name: Build osx-arm64
|
|
run: dotnet publish code/${{ inputs.executableName }}/${{ inputs.executableName }}.csproj -c Release --runtime osx-arm64 --self-contained -o artifacts/${{ env.githubRepositoryName }}-osx-arm64 /p:PublishSingleFile=true /p:Version=${{ env.appVersion }}
|
|
|
|
- name: Zip win-x64
|
|
run: |
|
|
cd ./artifacts
|
|
zip ./${{ env.githubRepositoryName }}-win-amd64.zip ./${{ env.githubRepositoryName }}-win-amd64/${{ env.githubRepositoryName }}.exe ./${{ env.githubRepositoryName }}-win-amd64/appsettings.json
|
|
|
|
- name: Zip linux-x64
|
|
run: |
|
|
cd ./artifacts
|
|
zip ./${{ env.githubRepositoryName }}-linux-amd64.zip ./${{ env.githubRepositoryName }}-linux-amd64/${{ env.githubRepositoryName }} ./${{ env.githubRepositoryName }}-linux-amd64/appsettings.json
|
|
|
|
- name: Zip linux-arm64
|
|
run: |
|
|
cd ./artifacts
|
|
zip ./${{ env.githubRepositoryName }}-linux-arm64.zip ./${{ env.githubRepositoryName }}-linux-arm64/${{ env.githubRepositoryName }} ./${{ env.githubRepositoryName }}-linux-arm64/appsettings.json
|
|
|
|
- name: Zip osx-x64
|
|
run: |
|
|
cd ./artifacts
|
|
zip ./${{ env.githubRepositoryName }}-osx-amd64.zip ./${{ env.githubRepositoryName }}-osx-amd64/${{ env.githubRepositoryName }} ./${{ env.githubRepositoryName }}-osx-amd64/appsettings.json
|
|
|
|
- name: Zip osx-arm64
|
|
run: |
|
|
cd ./artifacts
|
|
zip ./${{ env.githubRepositoryName }}-osx-arm64.zip ./${{ env.githubRepositoryName }}-osx-arm64/${{ env.githubRepositoryName }} ./${{ env.githubRepositoryName }}-osx-arm64/appsettings.json
|
|
|
|
- name: Release
|
|
id: release
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
name: ${{ env.releaseVersion }}
|
|
tag_name: ${{ env.releaseVersion }}
|
|
repository: ${{ env.githubRepository }}
|
|
token: ${{ env.REPO_READONLY_PAT }}
|
|
make_latest: true
|
|
fail_on_unmatched_files: true
|
|
target_commitish: main
|
|
generate_release_notes: true
|
|
files: |
|
|
./artifacts/${{ env.githubRepositoryName }}-win-amd64.zip
|
|
./artifacts/${{ env.githubRepositoryName }}-linux-amd64.zip
|
|
./artifacts/${{ env.githubRepositoryName }}-linux-arm64.zip
|
|
./artifacts/${{ env.githubRepositoryName }}-osx-amd64.zip
|
|
./artifacts/${{ env.githubRepositoryName }}-osx-arm64.zip |