diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml
new file mode 100644
index 00000000..6b58f975
--- /dev/null
+++ b/.github/workflows/coverity.yml
@@ -0,0 +1,51 @@
+name: Coverity
+
+on:
+ push:
+ paths-ignore:
+ - '.gitignore'
+ - '.gitattributes'
+ - 'res/**'
+ - '**.cmd'
+ - '**.md'
+ - '**.rc'
+ - '**.sh'
+ - '**.txt'
+ - '**.xml'
+
+env:
+ SOLUTION_FILE_PATH: ./rufus.sln
+ EMAIL: pete@akeo.ie
+
+jobs:
+ build:
+ runs-on: windows-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ submodules: recursive
+
+ - name: Download Coverity
+ run: |
+ curl -d "token=${{secrets.COVERITY_SCAN_TOKEN}}&project=pbatard%2Frufus" -L https://scan.coverity.com/download/cxx/win64 -o cov-analysis-win64.zip
+ 7z x cov-analysis-win64.zip
+ del cov-analysis-win64.zip
+ move cov-analysis-win64* cov-analysis-win64
+
+ - name: Add Coverity to PATH
+ shell: bash
+ run: echo "${{github.workspace}}/cov-analysis-win64/bin" >> $GITHUB_PATH
+
+ - name: Add MSBuild to PATH
+ uses: microsoft/setup-msbuild@v1
+
+ - name: Build with Coverity
+ run: cov-build.exe --dir cov-int msbuild ${{env.SOLUTION_FILE_PATH}} /m /p:Configuration=Release,Platform=x64
+
+ - name: Upload Coverity build for analysis
+ run: |
+ 7z a -r cov-int.zip cov-int
+ curl --form email=${{env.EMAIL}} --form token=${{secrets.COVERITY_SCAN_TOKEN}} --form file=@cov-int.zip --form version="${{env.GITHUB_SHA}}" --form description="rufus" https://scan.coverity.com/builds?project=pbatard%2Frufus
diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml
index 61917625..70b4ede5 100644
--- a/.github/workflows/lock.yml
+++ b/.github/workflows/lock.yml
@@ -1,5 +1,5 @@
# Configuration for https://github.com/dessant/lock-threads
-name: 'Lock Threads'
+name: '[cron] Lock stale issues'
on:
schedule:
diff --git a/.github/workflows/mingw.yml b/.github/workflows/mingw.yml
new file mode 100644
index 00000000..ac9229d5
--- /dev/null
+++ b/.github/workflows/mingw.yml
@@ -0,0 +1,72 @@
+name: MinGW
+
+on:
+ push:
+ paths-ignore:
+ - '.gitignore'
+ - '.gitattributes'
+ - 'res/**'
+ - '**.cmd'
+ - '**.md'
+ - '**.rc'
+ - '**.sh'
+ - '**.txt'
+ - '**.xml'
+ pull_request:
+ paths-ignore:
+ - '.gitignore'
+ - '.gitattributes'
+ - 'res/**'
+ - '**.cmd'
+ - '**.md'
+ - '**.rc'
+ - '**.sh'
+ - '**.txt'
+ - '**.xml'
+
+jobs:
+ build:
+ runs-on: windows-latest
+
+ strategy:
+ matrix:
+ include:
+ - { sys: mingw64, env: x86_64 }
+ - { sys: mingw32, env: i686 }
+
+ defaults:
+ run:
+ shell: msys2 {0}
+
+ steps:
+ - name: Install MinGW
+ uses: msys2/setup-msys2@v2
+ with:
+ msystem: ${{matrix.sys}}
+ update: true
+ install: >-
+ mingw-w64-${{matrix.env}}-toolchain
+ base-devel
+ git
+ upx
+
+ - name: Checkout repository
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ submodules: recursive
+
+ - name: Build
+ run: |
+ ./configure --disable-debug
+ make -j4
+ mv src/rufus.exe .
+ strip rufus.exe
+ upx --lzma --best rufus.exe
+
+ - name: Upload artifacts
+ if: ${{ matrix.env == 'i686' }}
+ uses: actions/upload-artifact@v2
+ with:
+ name: MinGW
+ path: ./*.exe
diff --git a/.github/workflows/vs2019.yml b/.github/workflows/vs2019.yml
new file mode 100644
index 00000000..4fa44eb6
--- /dev/null
+++ b/.github/workflows/vs2019.yml
@@ -0,0 +1,57 @@
+name: VS2019
+
+on:
+ push:
+ paths-ignore:
+ - '.gitignore'
+ - '.gitattributes'
+ - 'res/**'
+ - '**.cmd'
+ - '**.md'
+ - '**.rc'
+ - '**.sh'
+ - '**.txt'
+ - '**.xml'
+ pull_request:
+ paths-ignore:
+ - '.gitignore'
+ - '.gitattributes'
+ - 'res/**'
+ - '**.cmd'
+ - '**.md'
+ - '**.rc'
+ - '**.sh'
+ - '**.txt'
+ - '**.xml'
+
+env:
+ SOLUTION_FILE_PATH: ./rufus.sln
+
+jobs:
+ build:
+ runs-on: windows-latest
+
+ strategy:
+ matrix:
+ TARGET_PLATFORM: [x64, x86, arm64, arm]
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ submodules: recursive
+
+ - name: Add MSBuild to PATH
+ uses: microsoft/setup-msbuild@v1
+
+ - name: Build
+ run: |
+ msbuild ${{env.SOLUTION_FILE_PATH}} /m /p:Configuration=Release,Platform=${{matrix.TARGET_PLATFORM}}
+ move ./${{matrix.TARGET_PLATFORM}}/Release/rufus.exe ./rufus_${{matrix.TARGET_PLATFORM}}.exe
+
+ - name: Upload artifacts
+ uses: actions/upload-artifact@v2
+ with:
+ name: VS2019
+ path: ./*.exe
diff --git a/ChangeLog.txt b/ChangeLog.txt
index f4324a11..ff3eb6d3 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -1,6 +1,6 @@
o Version 3.15 (2021.08.??)
Update GRUB to version 2.06
- Add support for .vtsi files (Ventoy Sparse Image)
+ Add support for .vtsi files (Ventoy Sparse Image, courtesy of longpanda/ventoy)
Move default app directory to %LocalAppData%\Rufus\ and always save a log there on exit
Fix AppStore version of Rufus not being able to store downloaded files
Fix failure to open Syslinux/GRUB files when Rufus is located at the root of a drive
diff --git a/README.md b/README.md
index 68c3fc2a..4e4fb74e 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,8 @@
Rufus: The Reliable USB Formatting Utility
==========================================
-[](https://ci.appveyor.com/project/pbatard/rufus)
+[](https://github.com/pbatard/rufus/actions/workflows/vs2019.yml)
+[](https://github.com/pbatard/rufus/actions/workflows/mingw.yml)
[](https://scan.coverity.com/projects/pbatard-rufus)
[](https://github.com/pbatard/rufus/graphs/contributors)
[](https://github.com/pbatard/rufus/releases)
diff --git a/appveyor.yml b/appveyor.yml
deleted file mode 100644
index fcceb862..00000000
--- a/appveyor.yml
+++ /dev/null
@@ -1,88 +0,0 @@
-os: Visual Studio 2019
-
-skip_commits:
- # Don't run AppVeyor for commits that only modify resource or non-code files
- files:
- - .gitignore
- - .gitattributes
- - .github/
- - res/
- - '**/*.cmd'
- - '**/*.md'
- - '**/*.rc'
- - '**/*.sh'
- - '**/*.txt'
- - '**/*.xml'
-
-environment:
- COVERITY_SCAN_EMAIL: "pete@akeo.ie"
- COVERITY_SCAN_TOKEN:
- secure: XZADvwlRFo57sBA54pBH2oVT/eR/OytZYY/sCKq61io=
- global:
- BITS: 32
- matrix:
- - CONFIGURATION: Release
- COMPILER: Coverity
- PLATFORM: x86
- - CONFIGURATION: Debug
- COMPILER: MSVC
- PLATFORM: x86
- - CONFIGURATION: Debug
- COMPILER: MSVC
- PLATFORM: x64
- - CONFIGURATION: Release
- COMPILER: MSVC
- PLATFORM: x86
- - CONFIGURATION: Release
- COMPILER: MSVC
- PLATFORM: x64
- - CONFIGURATION: Release
- COMPILER: MinGW
- PLATFORM: i686
- - CONFIGURATION: Release
- COMPILER: MinGW
- PLATFORM: x86_64
-
-init:
-# Set the AppVeyor build version number to our tag or, if untagged, to the commit hash
-# See https://github.com/appveyor/ci/issues/691
-# Also include the build number, to distinguish between rebuilds of the same commit
-- ps: |
- if ($env:APPVEYOR_REPO_TAG -eq "true") {
- Update-AppveyorBuild -Version "$($env:APPVEYOR_REPO_TAG_NAME)_#$env:APPVEYOR_BUILD_NUMBER";
- } else {
- Update-AppveyorBuild -Version "dev-$($env:APPVEYOR_REPO_COMMIT.Substring(0,8))_#$env:APPVEYOR_BUILD_NUMBER";
- }
-
-build:
- project: rufus.sln
- parallel: true
- verbosity: detailed
-
-install:
- ps: |
- if ($env:PLATFORM -eq "x86_64") {
- $env:BITS = 64
- }
-
-build_script:
- ps: |
- $APPVEYOR_LOGGER = "C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll";
- switch ($env:COMPILER) {
- MSVC {
- msbuild rufus.sln /m /p:Configuration=$env:CONFIGURATION,Platform=$env:PLATFORM /l:$APPVEYOR_LOGGER;
- }
- MinGW {
- C:\msys64\usr\bin\bash -lc "export PATH=/mingw$env:BITS/bin:`$PATH; cd /c/projects/rufus; mkdir -p m4; ./configure --build=$env:PLATFORM-w64-mingw32 --host=$env:PLATFORM-w64-mingw32 --disable-debug; make -j4";
- }
- Coverity {
- if (!"$env:COVERITY_SCAN_TOKEN") {
- Write-Output "Not running Coverity due to missing credential.";
- return;
- }
- cov-build.exe --dir cov-int msbuild rufus.sln /m /p:Configuration=$env:CONFIGURATION,Platform=$env:PLATFORM /l:$APPVEYOR_LOGGER;
- 7z a -r cov-int.zip cov-int
- # MUST use 'curl.exe' since 'curl' is a PowerShell alias to Invoke-Webrequest. Also MUST use @ sign before uploaded file.
- curl.exe -s --form email=$env:COVERITY_SCAN_EMAIL --form token=$env:COVERITY_SCAN_TOKEN --form file=@cov-int.zip --form version="$env:APPVEYOR_BUILD_VERSION" --form description="Rufus" https://scan.coverity.com/builds?project=pbatard%2Frufus
- }
- }
diff --git a/res/appstore/Package.appxmanifest b/res/appstore/Package.appxmanifest
index a2a4c7f5..2ddf2da7 100644
--- a/res/appstore/Package.appxmanifest
+++ b/res/appstore/Package.appxmanifest
@@ -11,7 +11,7 @@
+ Version="3.15.1807.0" />
Rufus
diff --git a/src/rufus.rc b/src/rufus.rc
index 7c04c50e..5dfb8dbc 100644
--- a/src/rufus.rc
+++ b/src/rufus.rc
@@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_DIALOG DIALOGEX 12, 12, 232, 326
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_ACCEPTFILES
-CAPTION "Rufus 3.15.1806"
+CAPTION "Rufus 3.15.1807"
FONT 9, "Segoe UI Symbol", 400, 0, 0x0
BEGIN
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
@@ -395,8 +395,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 3,15,1806,0
- PRODUCTVERSION 3,15,1806,0
+ FILEVERSION 3,15,1807,0
+ PRODUCTVERSION 3,15,1807,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -414,13 +414,13 @@ BEGIN
VALUE "Comments", "https://rufus.ie"
VALUE "CompanyName", "Akeo Consulting"
VALUE "FileDescription", "Rufus"
- VALUE "FileVersion", "3.15.1806"
+ VALUE "FileVersion", "3.15.1807"
VALUE "InternalName", "Rufus"
VALUE "LegalCopyright", "© 2011-2021 Pete Batard (GPL v3)"
VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html"
VALUE "OriginalFilename", "rufus-3.15.exe"
VALUE "ProductName", "Rufus"
- VALUE "ProductVersion", "3.15.1806"
+ VALUE "ProductVersion", "3.15.1807"
END
END
BLOCK "VarFileInfo"