Skip to content

changes to workflow #85

changes to workflow

changes to workflow #85

Workflow file for this run

# This workflow will build a .NET project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net
name: Prerelease
on:
push:
branches: [ "unstable" ]
pull_request:
branches: [ "unstable" ]
env:
VERSION: "0.2.7"
jobs:
build:
strategy:
matrix:
os: [ ubuntu-latest ]
dotnet-version: [ '8.0.x' ]
runs-on: ${{ matrix.os }}
if: false
steps:
- uses: actions/checkout@v3
- name: Setup .NET Core SDK ${{ matrix.dotnet-version }}
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ matrix.dotnet-version }}
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --configuration Release --no-restore
- name: Test
run: dotnet test --no-build --verbosity normal
- name: Display dotnet version
run: dotnet --version
- name: "List all files"
run: ls -R
release:
strategy:
matrix:
os: [ ubuntu-latest ]
dotnet-version: [ '8.0.x' ]
fail-fast: false
runs-on: ${{ matrix.os }}
needs: [build]
if: ${{ needs.build.result == 'success' }}
steps:
- uses: actions/checkout@v3
- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ matrix.dotnet-version }}
- name: Restore dependencies
run: dotnet restore
- name: Publish
run: |
dotnet publish bookmark-dlp.sln --configuration Release --runtime win-x64 --self-contained
dotnet publish bookmark-dlp.sln --configuration Release --runtime win-x86 --self-contained
dotnet publish bookmark-dlp.sln --configuration Release --runtime win-arm64 --self-contained
dotnet publish bookmark-dlp.sln --configuration Release --runtime linux-x64 --self-contained
dotnet publish bookmark-dlp.sln --configuration Release --runtime linux-arm64 --self-contained
dotnet publish bookmark-dlp.sln --configuration Release --runtime osx-x64 --self-contained
dotnet publish bookmark-dlp.sln --configuration Release --runtime osx-arm64 --self-contained
- name: "List all files"
run: |
echo $PWD
ls -R
- name: "Rename based on architecture"
run: |
mv "/home/runner/work/bookmark-dlp/bookmark-dlp/bin/Release/net8.0/win-x64/publish/bookmark-dlp.exe" "/home/runner/work/bookmark-dlp/bookmark-dlp/bin/Release/net8.0/win-x64/publish/bookmark-dlp-win-x64-${{ matrix.dotnet-version }}.exe"
mv "/home/runner/work/bookmark-dlp/bookmark-dlp/bin/Release/net8.0/win-x86/publish/bookmark-dlp.exe" "/home/runner/work/bookmark-dlp/bookmark-dlp/bin/Release/net8.0/win-x86/publish/bookmark-dlp-win-x86-${{ matrix.dotnet-version }}.exe"
mv "/home/runner/work/bookmark-dlp/bookmark-dlp/bin/Release/net8.0/linux-arm64/publish/bookmark-dlp" "/home/runner/work/bookmark-dlp/bookmark-dlp/bin/Release/net8.0/linux-arm64/publish/bookmark-dlp-linux-arm64-${{ matrix.dotnet-version }}"
mv "/home/runner/work/bookmark-dlp/bookmark-dlp/bin/Release/net8.0/linux-x64/publish/bookmark-dlp" "/home/runner/work/bookmark-dlp/bookmark-dlp/bin/Release/net8.0/linux-x64/publish/bookmark-dlp-linux-x64-${{ matrix.dotnet-version }}"
mv "/home/runner/work/bookmark-dlp/bookmark-dlp/bin/Release/net8.0/osx-x64/publish/bookmark-dlp" "/home/runner/work/bookmark-dlp/bookmark-dlp/bin/Release/net8.0/osx-x64/publish/bookmark-dlp-osx-x64-${{ matrix.dotnet-version }}"
mv "/home/runner/work/bookmark-dlp/bookmark-dlp/bin/Release/net8.0/osx-arm64/publish/bookmark-dlp" "/home/runner/work/bookmark-dlp/bookmark-dlp/bin/Release/net8.0/osx-arm64/publish/bookmark-dlp-osx-arm64"
mv "/home/runner/work/bookmark-dlp/bookmark-dlp/bin/Release/net8.0/win-arm64/publish/bookmark-dlp.exe" "/home/runner/work/bookmark-dlp/bookmark-dlp/bin/Release/net8.0/win-arm64/publish/bookmark-dlp-win-arm64-${{ matrix.dotnet-version }}.exe"
- name: "Delete old release"
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release list > releases.txt
cat releases.txt
version="${{ env.VERSION }}"
echo $version
if grep $version releases.txt; then
echo wasfound
gh release delete $version
else
echo "notfound"
fi
- name: "Create new prerelease"
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release create "${{ env.VERSION }}" --target unstable --prerelease --title "Development build ${{ env.VERSION }}" --generate-notes
- name: Upload
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release upload "${{ env.VERSION }}" "./bin/Release/net8.0/win-x64/publish/bookmark-dlp-win-x64-${{ matrix.dotnet-version }}.exe" --clobber
gh release upload "${{ env.VERSION }}" "./bin/Release/net8.0/win-x86/publish/bookmark-dlp-win-x86-${{ matrix.dotnet-version }}.exe" --clobber
gh release upload "${{ env.VERSION }}" "./bin/Release/net8.0/linux-arm64/publish/bookmark-dlp-linux-arm64-${{ matrix.dotnet-version }}" --clobber
gh release upload "${{ env.VERSION }}" "./bin/Release/net8.0/linux-x64/publish/bookmark-dlp-linux-x64-${{ matrix.dotnet-version }}" --clobber
gh release upload "${{ env.VERSION }}" "./bin/Release/net8.0/osx-x64/publish/bookmark-dlp-osx-x64-${{ matrix.dotnet-version }}" --clobber
gh release upload "${{ env.VERSION }}" "./bin/Release/net8.0/osx-arm64/publish/bookmark-dlp-osx-arm64" --clobber
gh release upload "${{ env.VERSION }}" "./bin/Release/net8.0/win-arm64/publish/bookmark-dlp-win-arm64-${{ matrix.dotnet-version }}.exe" --clobber
pupnet:
strategy:
matrix:
os: [ ubuntu-latest ]
dotnet-version: [ '8.0.x' ]
fail-fast: false
runs-on: ${{ matrix.os }}
# needs: [release]
# if: ${{ needs.release.result == 'success' }}
steps:
- uses: actions/checkout@v3
- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ matrix.dotnet-version }}
- name: Setup dependencies
run: |
# dnf -y install dpkg rpmdevtools # flatpak flatpak-builder pandoc
sudo apt-get -y install dpkg rpm flatpak flatpak-builder pandoc
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# echo ${{ env.MULTIENV }}
#if "${{ env.MULTIENV }}" == "true"; then
sudo flatpak install -y flathub org.freedesktop.Platform//23.08 org.freedesktop.Sdk//23.08
dotnet tool install -g KuiperZone.PupNet
- name: Restore dependencies
run: dotnet restore
- name: Publish
run: |
# dotnet publish bookmark-dlp.sln --configuration Release --runtime win-x64 --self-contained
# runtime: [ 'linux-x64', 'linux-arm64' ]
# kind: [ 'appimage', 'deb', 'rpm', 'flatpak' ]
pupnet --runtime linux-x64 --kind appimage --build Release --app-version ${{ env.VERSION }} --verbose
pupnet --runtime linux-x64 --kind deb --build Release --app-version ${{ env.VERSION }} --verbose
pupnet --runtime linux-x64 --kind rpm --build Release --app-version ${{ env.VERSION }} --verbose
pupnet --runtime linux-x64 --kind flatpak --build Release --app-version ${{ env.VERSION }} --verbose
pupnet --runtime linux-arm64 --kind appimage --build Release --app-version ${{ env.VERSION }} --verbose
pupnet --runtime linux-arm64 --kind deb --build Release --app-version ${{ env.VERSION }} --verbose
# pupnet --runtime linux-arm64 --kind rpm --build Release --app-version ${{ env.VERSION }} --verbose
pupnet --runtime linux-arm64 --kind flatpak --build Release --app-version ${{ env.VERSION }} --verbose
- name: "List all files"
run: |
echo $PWD
ls -R
# no need to rename, pupnet names things according to conventions
# no need to delete/create release here, it was resolved in "release" job
- name: Upload
env:
GH_TOKEN: ${{ github.token }}
run: |
# gh release upload "${{ env.VERSION }}" "./pupnet/out/*" --clobber
gh release upload "${{ env.VERSION }}" ./pupnet/out/bookmark-dlp-${{ env.VERSION }}-1.aarch64.flatpak --clobber
gh release upload "${{ env.VERSION }}" ./pupnet/out/bookmark-dlp-${{ env.VERSION }}-1.x86_64.flatpak --clobber
gh release upload "${{ env.VERSION }}" ./pupnet/out/bookmark-dlp-${{ env.VERSION }}-1.x86_64.AppImage --clobber
gh release upload "${{ env.VERSION }}" ./pupnet/out/bookmark-dlp_${{ env.VERSION }}-1.x86_64.rpm --clobber
gh release upload "${{ env.VERSION }}" ./pupnet/out/bookmark-dlp_${{ env.VERSION }}-1_amd64.deb --clobber
gh release upload "${{ env.VERSION }}" ./pupnet/out/bookmark-dlp_${{ env.VERSION }}-1_arm64.deb --clobber
#comments https://github.com/seerge/g-helper/blob/main/.github/workflows/release.yml
# Optional global.json location, if your global.json isn't located in the root of the repo.
#global-json-file:
# Optional package source for which to set up authentication. Will consult any existing NuGet.config in the root of the repo and provide a temporary NuGet.config using the NUGET_AUTH_TOKEN environment variable as a ClearTextPassword
#source-url:
# Optional NuGet.config location, if your NuGet.config isn't located in the root of the repo.
#config-file: # optional