From 39a35626c1a842a7619debfc879cf50545207cc6 Mon Sep 17 00:00:00 2001 From: Roland Heyder Date: Thu, 11 Aug 2022 23:04:07 +0200 Subject: [PATCH] Step 9: Update GitHub Actions - rename build artifact names and distribution archive names - this step completes file name related changes (based on extension, more may come based on "qb64" string) --- .ci/bootstrap.bat | 4 ++-- .ci/bootstrap.sh | 6 +++--- .ci/compile.bat | 4 ++-- .ci/compile.sh | 4 ++-- .ci/make-dist.sh | 8 ++++---- .github/workflows/ci.yml | 20 ++++++++++---------- docs/build-system.md | 20 ++++++++++---------- 7 files changed, 33 insertions(+), 33 deletions(-) diff --git a/.ci/bootstrap.bat b/.ci/bootstrap.bat index 1fd9014c9..fb336fceb 100644 --- a/.ci/bootstrap.bat +++ b/.ci/bootstrap.bat @@ -15,7 +15,7 @@ echo Extracting %MINGW% as C++ Compiler @echo off %MINGW% -y -o"./internal/c/c_compiler/" -echo Bootstrapping QB64 -internal\c\c_compiler\bin\mingw32-make.exe -j8 OS=win BUILD_QB64=y EXE=.\qb64_bootstrap.exe +echo Bootstrapping QB64-PE +internal\c\c_compiler\bin\mingw32-make.exe -j8 OS=win BUILD_QB64=y EXE=.\qb64pe_bootstrap.exe IF ERRORLEVEL 1 exit /b 1 diff --git a/.ci/bootstrap.sh b/.ci/bootstrap.sh index fca5d9d67..9f75c7fb7 100755 --- a/.ci/bootstrap.sh +++ b/.ci/bootstrap.sh @@ -2,11 +2,11 @@ OS=$1 -echo -n "Bootstrapping QB64..." -make -j8 OS=$OS BUILD_QB64=y EXE=./qb64_bootstrap +echo -n "Bootstrapping QB64-PE..." +make -j8 OS=$OS BUILD_QB64=y EXE=./qb64pe_bootstrap if [ $? -ne 0 ]; then - echo "QB64 bootstrap failed" + echo "QB64-PE bootstrap failed" exit 1 fi echo "Done" diff --git a/.ci/compile.bat b/.ci/compile.bat index c369eb3d1..2224645b6 100644 --- a/.ci/compile.bat +++ b/.ci/compile.bat @@ -1,10 +1,10 @@ @ECHO OFF SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION -qb64_bootstrap.exe -x -w source\qb64pe.bas +qb64pe_bootstrap.exe -x -w source\qb64pe.bas IF ERRORLEVEL 1 exit /b 1 -del qb64_bootstrap.exe +del qb64pe_bootstrap.exe del /q /s internal\source\* move internal\temp\* internal\source\ diff --git a/.ci/compile.sh b/.ci/compile.sh index c68e0fcee..cfa21f906 100755 --- a/.ci/compile.sh +++ b/.ci/compile.sh @@ -2,10 +2,10 @@ os=$1 -./qb64_bootstrap -x -w source/qb64pe.bas +./qb64pe_bootstrap -x -w source/qb64pe.bas SUCCESS=$? -rm qb64_bootstrap +rm qb64pe_bootstrap rm internal/source/* rm internal/temp/debug_* internal/temp/recompile_* rm internal/temp/qb64pe.sym diff --git a/.ci/make-dist.sh b/.ci/make-dist.sh index ec6df2843..0379ab26b 100755 --- a/.ci/make-dist.sh +++ b/.ci/make-dist.sh @@ -4,7 +4,7 @@ buildPlatform=$1 version=$2 format= -ARCHIVE_ROOT=qb64 +ARCHIVE_ROOT=qb64pe DIST_ROOT=./dist/$ARCHIVE_ROOT case "$buildPlatform" in @@ -45,7 +45,7 @@ cp -p ./internal/c/* $DIST_ROOT/internal/c/ case "$buildPlatform" in windows-latest) - filename="qb64_win-$PLATFORM-$version.7z" + filename="qb64pe_win-$PLATFORM-$version.7z" format=7zip @@ -54,7 +54,7 @@ case "$buildPlatform" in ;; ubuntu-latest) - filename="qb64_lnx-$version.tar.gz" + filename="qb64pe_lnx-$version.tar.gz" format=tar # Not sure if we should distribute this @@ -63,7 +63,7 @@ case "$buildPlatform" in ;; macos-latest) - filename="qb64_osx-$version.tar.gz" + filename="qb64pe_osx-$version.tar.gz" format=tar cp -p ./qb64pe_start.command $DIST_ROOT diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8e46ee1a7..599197467 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -94,7 +94,7 @@ jobs: # artifacts in the previous step - name: Test QB64 Artifact shell: bash - run: tests/run_dist_tests.sh ./dist/qb64 ${{ matrix.prefix }} + run: tests/run_dist_tests.sh ./dist/qb64pe ${{ matrix.prefix }} # Only update ./internal/source if we're building on Linux, building on # the main branch, and building a Pull request merge. Otherwise the repo @@ -106,13 +106,13 @@ jobs: - uses: actions/upload-artifact@v3 if: always() with: - name: qb64-${{ matrix.prefix }}${{ matrix.prefix == 'win' && format('-{0}', matrix.platform) || '' }}-${{ env.version }} + name: qb64pe-${{ matrix.prefix }}${{ matrix.prefix == 'win' && format('-{0}', matrix.platform) || '' }}-${{ env.version }} path: | tests/results/ - qb64_win-x86*.7z - qb64_win-x64*.7z - qb64_lnx*.tar.gz - qb64_osx*.tar.gz + qb64pe_win-x86*.7z + qb64pe_win-x64*.7z + qb64pe_lnx*.tar.gz + qb64pe_osx*.tar.gz - name: Create release if: startsWith(github.ref, 'refs/tags/v') @@ -120,9 +120,9 @@ jobs: with: draft: true files: | - qb64_win-x86*.7z - qb64_win-x64*.7z - qb64_lnx*.tar.gz - qb64_osx*.tar.gz + qb64pe_win-x86*.7z + qb64pe_win-x64*.7z + qb64pe_lnx*.tar.gz + qb64pe_osx*.tar.gz env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/docs/build-system.md b/docs/build-system.md index 0e558139b..73cf1268a 100644 --- a/docs/build-system.md +++ b/docs/build-system.md @@ -6,7 +6,7 @@ Build Process This describes the process that goes on to compile a QB64 program into an executable. -1. `QB64pe.bas` takes the QB64 source code and produces C++ source code for the program. That C++ source is placed into various files and goes into `./internal/temp`. +1. `QB64-PE` takes the QB64 source code and produces C++ source code for the program. That C++ source is placed into various files and goes into `./internal/temp`. 2. `make` is used to run the `Makefile` at the root of this repository. It is supplied the `OS` parameter, the `EXE` parameter for the final executable name, and a variety of `DEP_*` parameters depending on what dependencies the QB64 program requires. 1. 3rd party dependencies located in `./internal/c/parts/` are compiled if requested. Each of these has its own `build.mk` file that includes the `make` logic to build that dependency. 2. `./internal/c/libqb.cpp` is compiled with various C preprocessor flags depending on the provided `DEP_*` flags. The name is changed depending on the settings it is compiled with so that we don't accidentally use a libqb compiled with different settings. @@ -21,11 +21,11 @@ This describes how QB64 itself is built by the CI process to produce a release o 1. Before CI ever begins, `./internal/source/` contains the generated C++ source of a previous version of `qb64pe.bas`. 2. `.ci/calculate_version.sh` is run to determine what version this CI build should be considered. That information is written to `./internal/version.txt`, if it is a release version `./internal/version.txt` is removed. -3. `qb64_bootstrap` is compiled from `./internal/source` - 1. `make` is used to call the `Makefile` with the proper `OS` setting, `EXE=qb64_bootstrap`, and `BUILD_QB64=y`. +3. `qb64pe_bootstrap` is compiled from `./internal/source` + 1. `make` is used to call the `Makefile` with the proper `OS` setting, `EXE=qb64pe_bootstrap`, and `BUILD_QB64=y`. 2. The Makefile will take care of copying `./internal/source` into `./internal/temp` and compiling QB64 with the proper settings. -4. `qb64_bootstrap` is used to compile `./source/qb64pe.bas` into a proper `qb64pe` executable - 1. We run `./qb64_bootstrap -x ./source/qb64pe.bas` to compile QB64. This compiles QB64 the same way as a regular QB64 program as detailed in 'Build Process' +4. `qb64pe_bootstrap` is used to compile `./source/qb64pe.bas` into a proper `qb64pe` executable + 1. We run `./qb64pe_bootstrap -x ./source/qb64pe.bas` to compile QB64. This compiles QB64 the same way as a regular QB64 program as detailed in 'Build Process' 5. `./internal/source` is cleared out and, excluding a few files, the contents of `./internal/temp` are copied into `./internal/source` as the new generated C++ source of QB64. 6. `tests/run_tests.sh` is run to test the compiled version of QB64. A failure of these tests fails the build at this stage. 7. `.ci/make-dist.sh` is run to produce the distribution of QB64, which is stored as a build artifact and potentially a release artifact.. @@ -40,17 +40,17 @@ Repository Layout - `.ci/` - All files in this folder are related to the CI build process. - `bootstrap.bat` - - Windows only, Downloads MinGW compiler, builds the precompiled version of QB64 located in `./internal/source` as `qb64_bootstrap.exe`. + - Windows only, Downloads MinGW compiler, builds the precompiled version of QB64 located in `./internal/source` as `qb64pe_bootstrap.exe`. - `bootstrap.sh` - - Linux and OSX, builds the precompiled version of QB64 located in `./internal/source` as `qb64_bootstrap.exe`. + - Linux and OSX, builds the precompiled version of QB64 located in `./internal/source` as `qb64pe_bootstrap.exe`. - `compile.bat` - - Uses `qb64_bootstrap.exe` to build `./source/qb64pe.bas`. This compiled QB64 is the released `QB64pe.exe`. + - Uses `qb64pe_bootstrap.exe` to build `./source/qb64pe.bas`. This compiled QB64 is the released `QB64pe.exe`. - `compile.sh` - - Uses `qb64_bootstrap` to build `./source/qb64pe.bas`. This built QB64 is what is used for testing, and the sources from this QB64 are placed into `./internal/source`. + - Uses `qb64pe_bootstrap` to build `./source/qb64pe.bas`. This built QB64 is what is used for testing, and the sources from this QB64 are placed into `./internal/source`. - `make-dist.sh` - Copies all the relevant parts of QB64 into a new folder, which can be distributed as a release. - `push-internal-source.sh` - - If `./internal/source` is different after building `./source/qb64pe.bas`, then this will automatically push those changes to the repository to update the sources used to build `qb64_bootstrap`. + - If `./internal/source` is different after building `./source/qb64pe.bas`, then this will automatically push those changes to the repository to update the sources used to build `qb64pe_bootstrap`. - `internal/` - `help/` - Contains a downloaded copy of the help files, so that they do not have to be downloaded when QB64 is installed.