Skip to content

Skip x86 Windows in debloat #69

Skip x86 Windows in debloat

Skip x86 Windows in debloat #69

Workflow file for this run

name: CI
on:
pull_request:
branches: [ master ]
workflow_dispatch:
inputs:
version:
description: 'Release version to create'
required: true
jobs:
build_and_test:
strategy:
matrix:
include:
- vm: ubuntu-latest
# - vm: windows-latest
runs-on: ${{ matrix.vm }}
name: Build and test ${{ matrix.vm }}
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.0.x'
dotnet-quality: 'preview'
- name: Ask Github to please let us use the package registry
run: |
cd src/bflat
dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/bflattened/index.json"
- name: Build (CI)
if: ${{ github.event.inputs.version == '' }}
run: dotnet build src/bflat/bflat.csproj -t:BuildLayouts -c:Release
- name: Build (CD)
if: ${{ github.event.inputs.version != '' }}
run: dotnet build src/bflat/bflat.csproj -t:BuildLayouts -c:Release -p:Version=${{ github.event.inputs.version }}
- name: Debloat the libs
run: |
dotnet run --project src/debloat/debloat.csproj layouts/windows-x64/lib
dotnet run --project src/debloat/debloat.csproj layouts/windows-arm64/lib
dotnet run --project src/debloat/debloat.csproj layouts/linux-glibc-x64/lib
dotnet run --project src/debloat/debloat.csproj layouts/linux-glibc-arm64/lib
- name: Prepare symbols
run: |
mv layouts/windows-x64/bflat.pdb layouts/obj/windows-x64/
mv layouts/windows-arm64/bflat.pdb layouts/obj/windows-arm64/
sudo apt-get update
sudo apt-get install llvm
llvm-objcopy --only-keep-debug layouts/linux-glibc-x64/bflat layouts/obj/linux-glibc-x64/bflat.dwo
llvm-objcopy --strip-debug --strip-unneeded layouts/linux-glibc-x64/bflat
llvm-objcopy --add-gnu-debuglink=layouts/obj/linux-glibc-x64/bflat.dwo layouts/linux-glibc-x64/bflat
llvm-objcopy --only-keep-debug layouts/linux-glibc-arm64/bflat layouts/obj/linux-glibc-arm64/bflat.dwo
llvm-objcopy --strip-debug --strip-unneeded layouts/linux-glibc-arm64/bflat
llvm-objcopy --add-gnu-debuglink=layouts/obj/linux-glibc-arm64/bflat.dwo layouts/linux-glibc-arm64/bflat
- name: Inject license
if: ${{ github.event.inputs.version != '' }}
run: |
cp .github/official-release-license.tmp layouts/windows-x64/LICENSE.TXT
cp .github/official-release-license.tmp layouts/windows-arm64/LICENSE.TXT
cp .github/official-release-license.tmp layouts/linux-glibc-x64/LICENSE.TXT
cp .github/official-release-license.tmp layouts/linux-glibc-arm64/LICENSE.TXT
- name: Create archives
run: |
(cd layouts/windows-x64 && zip -r ../windows-x64.zip .)
(cd layouts/windows-arm64 && zip -r ../windows-arm64.zip .)
zip -j layouts/windows-x64-symbols.zip layouts/obj/windows-x64/bflat.pdb
zip -j layouts/windows-arm64-symbols.zip layouts/obj/windows-arm64/bflat.pdb
tar -C layouts/linux-glibc-x64/ -czvf layouts/linux-glibc-x64.tar.gz .
tar -C layouts/obj/linux-glibc-x64/ -czvf layouts/linux-glibc-x64-symbols.tar.gz bflat.dwo
tar -C layouts/linux-glibc-arm64/ -czvf layouts/linux-glibc-arm64.tar.gz .
tar -C layouts/obj/linux-glibc-arm64/ -czvf layouts/linux-glibc-arm64-symbols.tar.gz bflat.dwo
- name: Archive windows-x64 hosted compiler
uses: actions/upload-artifact@v2
with:
name: bflat-windows-x64.zip
path: layouts/windows-x64.zip
- name: Archive windows-x64 hosted compiler symbols
uses: actions/upload-artifact@v2
with:
name: debugsymbols-bflat-windows-x64.zip
path: layouts/windows-x64-symbols.zip
- name: Archive windows-arm64 hosted compiler
uses: actions/upload-artifact@v2
with:
name: bflat-windows-arm64.zip
path: layouts/windows-arm64.zip
- name: Archive windows-arm64 hosted compiler symbols
uses: actions/upload-artifact@v2
with:
name: debugsymbols-bflat-windows-arm64.zip
path: layouts/windows-arm64-symbols.zip
- name: Archive linux-glibc-x64 hosted compiler
uses: actions/upload-artifact@v2
with:
name: bflat-linux-glibc-x64.zip
path: layouts/linux-glibc-x64.tar.gz
- name: Archive linux-glibc-x64 hosted compiler symbols
uses: actions/upload-artifact@v2
with:
name: debugsymbols-bflat-linux-glibc-x64.zip
path: layouts/linux-glibc-x64-symbols.tar.gz
- name: Archive linux-glibc-arm64 hosted compiler
uses: actions/upload-artifact@v2
with:
name: bflat-linux-glibc-arm64.zip
path: layouts/linux-glibc-arm64.tar.gz
- name: Archive linux-glibc-arm64 hosted compiler symbols
uses: actions/upload-artifact@v2
with:
name: debugsymbols-bflat-linux-glibc-arm64.zip
path: layouts/linux-glibc-arm64-symbols.tar.gz
- name: Run tests
if: ${{ github.event.inputs.version == '' }}
run: dotnet test src/bflat.Tests/bflat.Tests.csproj
- name: Create tag
if: ${{ github.event.inputs.version != '' && github.actor == 'MichalStrehovsky' }}
run: |
git tag v${{ github.event.inputs.version }}
git push origin v${{ github.event.inputs.version }}
- name: Create Release
if: ${{ github.event.inputs.version != '' && github.actor == 'MichalStrehovsky' }}
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ github.event.inputs.version }}
release_name: v${{ github.event.inputs.version }}
draft: true
prerelease: false
- name: Upload windows-x64 hosted compiler
if: ${{ github.event.inputs.version != '' && github.actor == 'MichalStrehovsky' }}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: layouts/windows-x64.zip
asset_name: bflat-${{ github.event.inputs.version }}-windows-x64.zip
asset_content_type: application/zip
- name: Upload windows-x64 hosted compiler symbols
if: ${{ github.event.inputs.version != '' && github.actor == 'MichalStrehovsky'}}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: layouts/windows-x64-symbols.zip
asset_name: bflat-${{ github.event.inputs.version }}-windows-x64-debugsymbols.zip
asset_content_type: application/zip
- name: Upload windows-arm64 hosted compiler
if: ${{ github.event.inputs.version != '' && github.actor == 'MichalStrehovsky' }}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: layouts/windows-arm64.zip
asset_name: bflat-${{ github.event.inputs.version }}-windows-arm64.zip
asset_content_type: application/zip
- name: Upload windows-arm64 hosted compiler symbols
if: ${{ github.event.inputs.version != '' && github.actor == 'MichalStrehovsky'}}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: layouts/windows-arm64-symbols.zip
asset_name: bflat-${{ github.event.inputs.version }}-windows-arm64-debugsymbols.zip
asset_content_type: application/zip
- name: Upload linux-glibc-x64 hosted compiler
if: ${{ github.event.inputs.version != '' && github.actor == 'MichalStrehovsky' }}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: layouts/linux-glibc-x64.tar.gz
asset_name: bflat-${{ github.event.inputs.version }}-linux-glibc-x64.tar.gz
asset_content_type: application/gzip
- name: Upload linux-glibc-x64 hosted compiler symbols
if: ${{ github.event.inputs.version != '' && github.actor == 'MichalStrehovsky' }}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: layouts/linux-glibc-x64-symbols.tar.gz
asset_name: bflat-${{ github.event.inputs.version }}-linux-glibc-x64-debugsymbols.tar.gz
asset_content_type: application/gzip
- name: Upload linux-glibc-arm64 hosted compiler
if: ${{ github.event.inputs.version != '' && github.actor == 'MichalStrehovsky' }}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: layouts/linux-glibc-arm64.tar.gz
asset_name: bflat-${{ github.event.inputs.version }}-linux-glibc-arm64.tar.gz
asset_content_type: application/gzip
- name: Upload linux-glibc-arm64 hosted compiler symbols
if: ${{ github.event.inputs.version != '' && github.actor == 'MichalStrehovsky' }}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: layouts/linux-glibc-arm64-symbols.tar.gz
asset_name: bflat-${{ github.event.inputs.version }}-linux-glibc-arm64-debugsymbols.tar.gz
asset_content_type: application/gzip