name: MinGW on: push: paths-ignore: - '.gitignore' - '.gitattributes' - 'res/**' - '**.cmd' - '**.md' - '**.rc' - '**.sh' - '**.txt' - '**.xml' pull_request: branches: [master] paths-ignore: - '.gitignore' - '.gitattributes' - 'res/**' - '**.cmd' - '**.md' - '**.rc' - '**.sh' - '**.txt' - '**.xml' jobs: MinGW-Build: runs-on: windows-latest strategy: matrix: include: - { sys: mingw64, env: x86_64, exe: rufus.exe } - { sys: mingw32, env: i686, exe: rufus_x86.exe } 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 autotools git upx - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 submodules: recursive - name: Set ALPHA id: set_alpha shell: bash if: ${{ !startsWith(github.ref, 'refs/tags/') }} # This ONLY works if the shell is bash or if using $env:GITHUB_OUTPUT run: echo "option=--enable-alpha" >> $GITHUB_OUTPUT - name: Set BETA id: set_beta shell: bash if: ${{ startsWith(github.ref, 'refs/tags/') && contains(github.ref, 'BETA') }} # This ONLY works if the shell is bash or if using $env:GITHUB_OUTPUT run: echo "option=--enable-beta" >> $GITHUB_OUTPUT - name: Build run: | ./configure --disable-debug ${{ steps.set_alpha.outputs.option }} ${{ steps.set_beta.outputs.option }} make -j4 mv ./src/rufus.exe ./${{ matrix.exe }} strip ./${{ matrix.exe }} upx --lzma --best ./${{ matrix.exe }} - name: Display SHA-256 run: sha256sum ./${{ matrix.exe }} - name: Upload to VirusTotal if: ${{ github.event_name == 'push' && matrix.env == 'x86_64' }} continue-on-error: true run: | curl --request POST --url https://www.virustotal.com/vtapi/v2/file/scan --form apikey=${{ secrets.VIRUSTOTAL_API_KEY }} --form file=@./${{ matrix.exe }} curl --request POST --url https://www.virustotal.com/api/v3/monitor/items --header 'x-apikey: ${{ secrets.VIRUSTOTAL_API_KEY }}' --form path='/${{ matrix.exe }}' --form file=@./${{ matrix.exe }} - name: Upload artifacts if: ${{ github.event_name == 'push' }} uses: actions/upload-artifact@v3 with: name: MinGW path: ./*.exe