From 9da4a49ab8285babc130026e315cceb8203ae40a Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 29 Jul 2021 00:49:17 +0100 Subject: [PATCH] [misc] switch to GitHub actions for CI --- .github/workflows/coverity.yml | 51 ++++++++++++++++++ .github/workflows/lock.yml | 2 +- .github/workflows/mingw.yml | 72 +++++++++++++++++++++++++ .github/workflows/vs2019.yml | 57 ++++++++++++++++++++ ChangeLog.txt | 2 +- README.md | 3 +- appveyor.yml | 88 ------------------------------- res/appstore/Package.appxmanifest | 2 +- src/rufus.rc | 10 ++-- 9 files changed, 190 insertions(+), 97 deletions(-) create mode 100644 .github/workflows/coverity.yml create mode 100644 .github/workflows/mingw.yml create mode 100644 .github/workflows/vs2019.yml delete mode 100644 appveyor.yml 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 ========================================== -[![Build status](https://img.shields.io/appveyor/ci/pbatard/rufus.svg?style=flat-square)](https://ci.appveyor.com/project/pbatard/rufus) +[![Build status](https://img.shields.io/github/workflow/status/pbatard/rufus/VS2019.svg?style=flat-square&label=VS2019)](https://github.com/pbatard/rufus/actions/workflows/vs2019.yml) +[![Build status](https://img.shields.io/github/workflow/status/pbatard/rufus/MinGW.svg?style=flat-square&label=MinGW)](https://github.com/pbatard/rufus/actions/workflows/mingw.yml) [![Coverity Scan Build Status](https://img.shields.io/coverity/scan/2172.svg?style=flat-square)](https://scan.coverity.com/projects/pbatard-rufus) [![Build contributors](https://img.shields.io/github/contributors/pbatard/rufus.svg?style=flat-square)](https://github.com/pbatard/rufus/graphs/contributors) [![Github stats](https://img.shields.io/github/downloads/pbatard/rufus/total.svg?label=downloads%20%28since%202019%29&style=flat-square)](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"