diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index a2e75a6..5a509df 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -12,28 +12,27 @@ jobs:
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
- version: ${{ env.GitBuildVersion }}
+ version: ${{ env.GitBuildVersionSimple }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
-
+
- name: Nerdbank.GitVersioning
uses: dotnet/nbgv@master
with:
setCommonVars: true
-
+
- name: Create Release
id: create_release
- uses: actions/create-release@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ uses: softprops/action-gh-release@v1
with:
- tag_name: ${{ env.GitBuildVersion }}
- release_name: Release ${{ env.GitBuildVersion }}
- body: |
- draft: false
- prerelease: false
+ name: Release ${{ env.GitBuildVersionSimple }}
+ tag_name: ${{ env.GitBuildVersionSimple }}
+ body_path: CHANGELOG.md
+ files: |
+ CHANGELOG.md
+ LICENSE
windows:
needs: release
@@ -58,21 +57,47 @@ jobs:
run: dotnet test GithubBackup.sln --configuration Release --no-restore
- name: Publish
- run: dotnet publish GithubBackup.Cli/GithubBackup.Cli.csproj --configuration Release --output publish/win-x64 --runtime win-x64 --self-contained
+ run: |
+ dotnet publish GithubBackup.Cli/GithubBackup.Cli.csproj --configuration Release --output publish/win-x64 --runtime win-x64
+ dotnet publish GithubBackup.Cli/GithubBackup.Cli.csproj --configuration Release --output publish/win-x86 --runtime win-x86
+ dotnet publish GithubBackup.Cli/GithubBackup.Cli.csproj --configuration Release --output publish/win-arm64 --runtime win-arm64
- name: Zip
- run: Compress-Archive -Path ./publish/win-x64/* -DestinationPath ./publish/ghb_win_x64_${{ needs.release.outputs.version }}.zip
+ run: |
+ Compress-Archive -Path ./publish/win-x64/* -DestinationPath ./publish/dm_win_x64_${{ needs.release.outputs.version }}.zip
+ Compress-Archive -Path ./publish/win-x86/* -DestinationPath ./publish/dm_win_x86_${{ needs.release.outputs.version }}.zip
+ Compress-Archive -Path ./publish/win-arm64/* -DestinationPath ./publish/dm_win_arm64_${{ needs.release.outputs.version }}.zip
+
+ - name: Upload Release Assets win-x64
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ needs.release.outputs.upload_url }}
+ asset_path: ./publish/dm_win_x64_${{ needs.release.outputs.version }}.zip
+ asset_name: dm_win_x64_${{ needs.release.outputs.version }}.zip
+ asset_content_type: application/zip
+
+ - name: Upload Release Assets win-x86
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ needs.release.outputs.upload_url }}
+ asset_path: ./publish/dm_win_x86_${{ needs.release.outputs.version }}.zip
+ asset_name: dm_win_x86_${{ needs.release.outputs.version }}.zip
+ asset_content_type: application/zip
- - name: Upload Release Assets
+ - name: Upload Release Assets win-arm64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.release.outputs.upload_url }}
- asset_path: ./publish/ghb_win_x64_${{ needs.release.outputs.version }}.zip
- asset_name: ghb_win_x64_${{ needs.release.outputs.version }}.zip
+ asset_path: ./publish/dm_win_arm64_${{ needs.release.outputs.version }}.zip
+ asset_name: dm_win_arm64_${{ needs.release.outputs.version }}.zip
asset_content_type: application/zip
-
+
linux:
needs: release
runs-on: ubuntu-latest
@@ -96,20 +121,70 @@ jobs:
run: dotnet test GithubBackup.sln --configuration Release --no-restore
- name: Publish
- run: dotnet publish GithubBackup.Cli/GithubBackup.Cli.csproj --configuration Release --output publish/linux-x64 --runtime linux-x64 --self-contained
-
+ run: |
+ dotnet publish GithubBackup.Cli/GithubBackup.Cli.csproj --configuration Release --output publish/linux-x64 --runtime linux-x64
+ dotnet publish GithubBackup.Cli/GithubBackup.Cli.csproj --configuration Release --output publish/linux-musl-x64 --runtime linux-musl-x64
+ dotnet publish GithubBackup.Cli/GithubBackup.Cli.csproj --configuration Release --output publish/linux-musl-arm64 --runtime linux-musl-arm64
+ dotnet publish GithubBackup.Cli/GithubBackup.Cli.csproj --configuration Release --output publish/linux-arm --runtime linux-arm
+ dotnet publish GithubBackup.Cli/GithubBackup.Cli.csproj --configuration Release --output publish/linux-arm64 --runtime linux-arm64
+
- name: Zip
- run: zip -r ghb_linux_x64_${{ needs.release.outputs.version }}.zip ./*
- working-directory: ./publish/linux-x64/
+ run: |
+ (cd linux-x64 && zip -r ../linux-x64/dm_linux_x64_${{ needs.release.outputs.version }}.zip .)
+ (cd linux-musl-x64 && zip -r ../linux-musl-x64/dm_linux_musl_x64_${{ needs.release.outputs.version }}.zip .)
+ (cd linux-musl-arm64 && zip -r ../linux-musl-arm64/dm_linux_musl_arm64_${{ needs.release.outputs.version }}.zip .)
+ (cd linux-arm && zip -r ../linux-arm/dm_linux_arm_${{ needs.release.outputs.version }}.zip .)
+ (cd linux-arm64 && zip -r ../linux-arm64/dm_linux_arm64_${{ needs.release.outputs.version }}.zip .)
+ working-directory: ./publish/
+
+ - name: Upload Release Assets linux-x64
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ needs.release.outputs.upload_url }}
+ asset_path: ./publish/linux-x64/dm_linux_x64_${{ needs.release.outputs.version }}.zip
+ asset_name: dm_linux_x64_${{ needs.release.outputs.version }}.zip
+ asset_content_type: application/zip
- - name: Upload Release Assets
+ - name: Upload Release Assets linux-musl-x64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.release.outputs.upload_url }}
- asset_path: ./publish/linux-x64/ghb_linux_x64_${{ needs.release.outputs.version }}.zip
- asset_name: ghb_linux_x64_${{ needs.release.outputs.version }}.zip
+ asset_path: ./publish/linux-musl-x64/dm_linux_musl_x64_${{ needs.release.outputs.version }}.zip
+ asset_name: dm_linux_musl_x64_${{ needs.release.outputs.version }}.zip
+ asset_content_type: application/zip
+
+ - name: Upload Release Assets linux-musl-arm64
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ needs.release.outputs.upload_url }}
+ asset_path: ./publish/linux-musl-arm64/dm_linux_musl_arm64_${{ needs.release.outputs.version }}.zip
+ asset_name: dm_linux_musl_arm64_${{ needs.release.outputs.version }}.zip
+ asset_content_type: application/zip
+
+ - name: Upload Release Assets linux-arm
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ needs.release.outputs.upload_url }}
+ asset_path: ./publish/linux-arm/dm_linux_arm_${{ needs.release.outputs.version }}.zip
+ asset_name: dm_linux_arm_${{ needs.release.outputs.version }}.zip
+ asset_content_type: application/zip
+
+ - name: Upload Release Assets linux-arm64
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ needs.release.outputs.upload_url }}
+ asset_path: ./publish/linux-arm64/dm_linux_arm64_${{ needs.release.outputs.version }}.zip
+ asset_name: dm_linux_arm64_${{ needs.release.outputs.version }}.zip
asset_content_type: application/zip
macos:
@@ -135,18 +210,32 @@ jobs:
run: dotnet test GithubBackup.sln --configuration Release --no-restore
- name: Publish
- run: dotnet publish GithubBackup.Cli/GithubBackup.Cli.csproj --configuration Release --output publish/osx-x64 --runtime osx-x64 --self-contained
+ run: |
+ dotnet publish GithubBackup.Cli/GithubBackup.Cli.csproj --configuration Release --output publish/osx-x64 --runtime osx-x64
+ dotnet publish GithubBackup.Cli/GithubBackup.Cli.csproj --configuration Release --output publish/osx-arm64 --runtime osx-arm64
- - name: Zip
- run: zip -r ghb_osx_x64_${{ needs.release.outputs.version }}.zip ./*
- working-directory: ./publish/osx-x64/
+ - name: Zip osx-x64
+ run: |
+ (cd osx-x64 && zip -r ../osx-x64/dm_osx_x64_${{ needs.release.outputs.version }}.zip .)
+ (cd osx-arm64 && zip -r ../osx-arm64/dm_osx_arm64_${{ needs.release.outputs.version }}.zip .)
+ working-directory: ./publish/
+
+ - name: Upload Release Assets osx-x64
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ needs.release.outputs.upload_url }}
+ asset_path: ./publish/osx-x64/dm_osx_x64_${{ needs.release.outputs.version }}.zip
+ asset_name: dm_osx_x64_${{ needs.release.outputs.version }}.zip
+ asset_content_type: application/zip
- - name: Upload Release Assets
+ - name: Upload Release Assets osx-arm64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.release.outputs.upload_url }}
- asset_path: ./publish/osx-x64/ghb_osx_x64_${{ needs.release.outputs.version }}.zip
- asset_name: ghb_osx_x64_${{ needs.release.outputs.version }}.zip
+ asset_path: ./publish/osx-arm64/dm_osx_arm64_${{ needs.release.outputs.version }}.zip
+ asset_name: dm_osx_arm64_${{ needs.release.outputs.version }}.zip
asset_content_type: application/zip
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index f427a6d..5591c37 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,404 +1,14 @@
-## Ignore Visual Studio temporary files, build results, and
-## files generated by popular Visual Studio add-ons.
-##
-## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
-
-# User-specific files
-*.rsuser
-*.suo
-*.user
-*.userosscache
-*.sln.docstates
-
-# User-specific files (MonoDevelop/Xamarin Studio)
-*.userprefs
-
-# Mono auto generated files
-mono_crash.*
+# Code
+!Backup/
+!Github/Backup/
+!Github/Backup/*
-# Build results
-[Dd]ebug/
-[Dd]ebugPublic/
-[Rr]elease/
-[Rr]eleases/
-x64/
-x86/
-[Ww][Ii][Nn]32/
-[Aa][Rr][Mm]/
-[Aa][Rr][Mm]64/
-bld/
+# Build
[Bb]in/
[Oo]bj/
-[Ll]og/
-[Ll]ogs/
-
-# Visual Studio 2015/2017 cache/options directory
-.vs/
-# Uncomment if you have tasks that create the project's static files in wwwroot
-#wwwroot/
-
-# Visual Studio 2017 auto generated files
-Generated\ Files/
-
-# MSTest test Results
-[Tt]est[Rr]esult*/
-[Bb]uild[Ll]og.*
-
-# NUnit
-*.VisualState.xml
-TestResult.xml
-nunit-*.xml
-
-# Build Results of an ATL Project
-[Dd]ebugPS/
-[Rr]eleasePS/
-dlldata.c
-
-# Benchmark Results
-BenchmarkDotNet.Artifacts/
-
-# .NET Core
-project.lock.json
-project.fragment.lock.json
-artifacts/
-
-# ASP.NET Scaffolding
-ScaffoldingReadMe.txt
-
-# StyleCop
-StyleCopReport.xml
-
-# Files built by Visual Studio
-*_i.c
-*_p.c
-*_h.h
-*.ilk
-*.meta
-*.obj
-*.iobj
-*.pch
-*.pdb
-*.ipdb
-*.pgc
-*.pgd
-*.rsp
-*.sbr
-*.tlb
-*.tli
-*.tlh
-*.tmp
-*.tmp_proj
-*_wpftmp.csproj
-*.log
-*.tlog
-*.vspscc
-*.vssscc
-.builds
-*.pidb
-*.svclog
-*.scc
-
-# Chutzpah Test files
-_Chutzpah*
-
-# Visual C++ cache files
-ipch/
-*.aps
-*.ncb
-*.opendb
-*.opensdf
-*.sdf
-*.cachefile
-*.VC.db
-*.VC.VC.opendb
-
-# Visual Studio profiler
-*.psess
-*.vsp
-*.vspx
-*.sap
-
-# Visual Studio Trace Files
-*.e2e
-
-# TFS 2012 Local Workspace
-$tf/
-
-# Guidance Automation Toolkit
-*.gpState
-
-# ReSharper is a .NET coding add-in
-_ReSharper*/
-*.[Rr]e[Ss]harper
-*.DotSettings.user
-
-# TeamCity is a build add-in
-_TeamCity*
-
-# DotCover is a Code Coverage Tool
-*.dotCover
-
-# AxoCover is a Code Coverage Tool
-.axoCover/*
-!.axoCover/settings.json
-
-# Coverlet is a free, cross platform Code Coverage Tool
-coverage*.json
-coverage*.xml
-coverage*.info
-
-# Visual Studio code coverage results
-*.coverage
-*.coveragexml
-
-# NCrunch
-_NCrunch_*
-.*crunch*.local.xml
-nCrunchTemp_*
-
-# MightyMoose
-*.mm.*
-AutoTest.Net/
-
-# Web workbench (sass)
-.sass-cache/
-
-# Installshield output folder
-[Ee]xpress/
-
-# DocProject is a documentation generator add-in
-DocProject/buildhelp/
-DocProject/Help/*.HxT
-DocProject/Help/*.HxC
-DocProject/Help/*.hhc
-DocProject/Help/*.hhk
-DocProject/Help/*.hhp
-DocProject/Help/Html2
-DocProject/Help/html
-
-# Click-Once directory
-publish/
-
-# Publish Web Output
-*.[Pp]ublish.xml
-*.azurePubxml
-# Note: Comment the next line if you want to checkin your web deploy settings,
-# but database connection strings (with potential passwords) will be unencrypted
-*.pubxml
-*.publishproj
-
-# Microsoft Azure Web App publish settings. Comment the next line if you want to
-# checkin your Azure Web App publish settings, but sensitive information contained
-# in these scripts will be unencrypted
-PublishScripts/
-
-# NuGet Packages
-*.nupkg
-# NuGet Symbol Packages
-*.snupkg
-# The packages folder can be ignored because of Package Restore
-**/[Pp]ackages/*
-# except build/, which is used as an MSBuild target.
-!**/[Pp]ackages/build/
-# Uncomment if necessary however generally it will be regenerated when needed
-#!**/[Pp]ackages/repositories.config
-# NuGet v3's project.json files produces more ignorable files
-*.nuget.props
-*.nuget.targets
-
-# Microsoft Azure Build Output
-csx/
-*.build.csdef
-
-# Microsoft Azure Emulator
-ecf/
-rcf/
-
-# Windows Store app package directories and files
-AppPackages/
-BundleArtifacts/
-Package.StoreAssociation.xml
-_pkginfo.txt
-*.appx
-*.appxbundle
-*.appxupload
-
-# Visual Studio cache files
-# files ending in .cache can be ignored
-*.[Cc]ache
-# but keep track of directories ending in .cache
-!?*.[Cc]ache/
-
-# Others
-ClientBin/
-~$*
-*~
-*.dbmdl
-*.dbproj.schemaview
-*.jfm
-*.pfx
-*.publishsettings
-orleans.codegen.cs
-
-# Including strong name files can present a security risk
-# (https://github.com/github/gitignore/pull/2483#issue-259490424)
-#*.snk
-
-# Since there are multiple workflows, uncomment next line to ignore bower_components
-# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
-#bower_components/
-
-# RIA/Silverlight projects
-Generated_Code/
-
-# Backup & report files from converting an old project file
-# to a newer Visual Studio version. Backup files are not needed,
-# because we have git ;-)
-_UpgradeReport_Files/
-Backup*/
-UpgradeLog*.XML
-UpgradeLog*.htm
-ServiceFabricBackup/
-*.rptproj.bak
-
-# SQL Server files
-*.mdf
-*.ldf
-*.ndf
-
-# Business Intelligence projects
-*.rdl.data
-*.bim.layout
-*.bim_*.settings
-*.rptproj.rsuser
-*- [Bb]ackup.rdl
-*- [Bb]ackup ([0-9]).rdl
-*- [Bb]ackup ([0-9][0-9]).rdl
-
-# Microsoft Fakes
-FakesAssemblies/
-
-# GhostDoc plugin setting file
-*.GhostDoc.xml
-
-# Node.js Tools for Visual Studio
-.ntvs_analysis.dat
-node_modules/
-
-# Visual Studio 6 build log
-*.plg
-
-# Visual Studio 6 workspace options file
-*.opt
-
-# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
-*.vbw
-
-# Visual Studio 6 auto-generated project file (contains which files were open etc.)
-*.vbp
-
-# Visual Studio 6 workspace and project file (working project files containing files to include in project)
-*.dsw
-*.dsp
-
-# Visual Studio 6 technical files
-*.ncb
-*.aps
-
-# Visual Studio LightSwitch build output
-**/*.HTMLClient/GeneratedArtifacts
-**/*.DesktopClient/GeneratedArtifacts
-**/*.DesktopClient/ModelManifest.xml
-**/*.Server/GeneratedArtifacts
-**/*.Server/ModelManifest.xml
-_Pvt_Extensions
-
-# Paket dependency manager
-.paket/paket.exe
-paket-files/
-
-# FAKE - F# Make
-.fake/
-
-# CodeRush personal settings
-.cr/personal
-
-# Python Tools for Visual Studio (PTVS)
-__pycache__/
-*.pyc
-
-# Cake - Uncomment if you are using it
-# tools/**
-# !tools/packages.config
-
-# Tabs Studio
-*.tss
-
-# Telerik's JustMock configuration file
-*.jmconfig
-
-# BizTalk build output
-*.btp.cs
-*.btm.cs
-*.odx.cs
-*.xsd.cs
-
-# OpenCover UI analysis results
-OpenCover/
-
-# Azure Stream Analytics local run output
-ASALocalRun/
-
-# MSBuild Binary and Structured Log
-*.binlog
-
-# NVidia Nsight GPU debugger configuration file
-*.nvuser
-
-# MFractors (Xamarin productivity tool) working folder
-.mfractor/
-
-# Local History for Visual Studio
-.localhistory/
-
-# Visual Studio History (VSHistory) files
-.vshistory/
-
-# BeatPulse healthcheck temp database
-healthchecksdb
-
-# Backup folder for Package Reference Convert tool in Visual Studio 2017
-MigrationBackup/
-
-# Ionide (cross platform F# VS Code tools) working folder
-.ionide/
-
-# Fody - auto-generated XML schema
-FodyWeavers.xsd
-
-# VS Code files for those working on multiple tools
-.vscode/*
-!.vscode/settings.json
-!.vscode/tasks.json
-!.vscode/launch.json
-!.vscode/extensions.json
-*.code-workspace
-
-# Local History for Visual Studio Code
-.history/
-
-# Windows Installer files from build outputs
-*.cab
-*.msi
-*.msix
-*.msm
-*.msp
-
-# JetBrains Rider
-*.sln.iml
+# Intellj
.idea
-!Backup/
-!Github/Backup/
-!Github/Backup/*
-*.received.*
+
+# Testing
+*.received.*
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..fb630aa
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,5 @@
+We are happy to announce the version `v1.3.0` of github-backup.
+
+This release includes the following features:
+
+- Support for other runtime environments
\ No newline at end of file
diff --git a/Directory.Build.props b/Directory.Build.props
index 4398109..87a71b6 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,11 +1,13 @@
net8.0
- win-x64;linux-x64;osx-x64
+ win-x64;win-x86;win-arm64;linux-x64;linux-musl-x64;linux-musl-arm64;linux-arm;linux-arm64;osx-x64;osx-arm64
12
enable
enable
true
+ true
+ true
diff --git a/GithubBackup.Cli.Tests.Integration/GithubBackup.Cli.Tests.Integration.csproj b/GithubBackup.Cli.Tests.Integration/GithubBackup.Cli.Tests.Integration.csproj
index 0b9dd12..9530456 100644
--- a/GithubBackup.Cli.Tests.Integration/GithubBackup.Cli.Tests.Integration.csproj
+++ b/GithubBackup.Cli.Tests.Integration/GithubBackup.Cli.Tests.Integration.csproj
@@ -14,9 +14,9 @@
-
-
-
+
+
+
@@ -26,10 +26,9 @@
+
-
-
diff --git a/GithubBackup.Cli.Tests/GithubBackup.Cli.Tests.csproj b/GithubBackup.Cli.Tests/GithubBackup.Cli.Tests.csproj
index 90446dc..b8c9de1 100644
--- a/GithubBackup.Cli.Tests/GithubBackup.Cli.Tests.csproj
+++ b/GithubBackup.Cli.Tests/GithubBackup.Cli.Tests.csproj
@@ -26,8 +26,9 @@
+
-
+
diff --git a/GithubBackup.sln b/GithubBackup.sln
index d83cb27..3025d19 100644
--- a/GithubBackup.sln
+++ b/GithubBackup.sln
@@ -12,6 +12,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_", "_", "{B58CB078-54A4-40
.gitignore = .gitignore
LICENSE = LICENSE
README.md = README.md
+ CHANGELOG.md = CHANGELOG.md
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GithubBackup.Core", "GithubBackup.Core\GithubBackup.Core.csproj", "{94CE06B8-7742-4A37-93CD-662FF98D6DD1}"
diff --git a/version.json b/version.json
index 85d076e..f52a442 100644
--- a/version.json
+++ b/version.json
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
- "version": "1.2.0",
+ "version": "1.3.0",
"publicReleaseRefSpec": [
"^refs/heads/main$",
"^refs/heads/v\\d+(?:\\.\\d+)?$"
@@ -8,7 +8,7 @@
"cloudBuild": {
"setVersionVariables": true,
"buildNumber": {
- "enabled": true
+ "enabled": false
}
}
}
\ No newline at end of file