1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-05-12 12:00:13 +00:00

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)
This commit is contained in:
Roland Heyder 2022-08-11 23:04:07 +02:00
parent db6081b1ae
commit 39a35626c1
7 changed files with 33 additions and 33 deletions

View file

@ -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

View file

@ -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"

View file

@ -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\

View file

@ -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

View file

@ -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

View file

@ -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 }}

View file

@ -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.