Added --passL:-static to Linux build.
h3rald h3rald@h3rald.com
Sat, 03 Jul 2021 17:28:01 +0200
1 files changed,
110 insertions(+),
110 deletions(-)
M
.github/workflows/add-artifacts-to-current-release.yml
→
.github/workflows/add-artifacts-to-current-release.yml
@@ -2,129 +2,129 @@ name: Add Artifacts to Current Release
# Controls when the action will run. on: - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: jobs: - release: - name: "Build and upload artifacts" - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: - - ubuntu-latest - - macos-latest - - windows-latest + release: + name: 'Build and upload artifacts' + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: + - ubuntu-latest + - macos-latest + - windows-latest - env: - CHOOSENIM_CHOOSE_VERSION: stable - CHOOSENIM_NO_ANALYTICS: 1 + env: + CHOOSENIM_CHOOSE_VERSION: stable + CHOOSENIM_NO_ANALYTICS: 1 - steps: - # Cancel other actions of the same type that might be already running - - name: "Cancel similar actions in progress" - uses: styfle/cancel-workflow-action@0.6.0 - with: - access_token: ${{ github.token }} + steps: + # Cancel other actions of the same type that might be already running + - name: 'Cancel similar actions in progress' + uses: styfle/cancel-workflow-action@0.6.0 + with: + access_token: ${{ github.token }} - # Detects OS and provide Nim-friendly OS identifiers - - name: Detect current OS - id: os - run: echo "::set-output name=id::${{matrix.os == 'ubuntu-latest' && 'linux' || matrix.os == 'macos-latest' && 'macosx' || matrix.os == 'windows-latest' && 'windows'}}" + # Detects OS and provide Nim-friendly OS identifiers + - name: Detect current OS + id: os + run: echo "::set-output name=id::${{matrix.os == 'ubuntu-latest' && 'linux' || matrix.os == 'macos-latest' && 'macosx' || matrix.os == 'windows-latest' && 'windows'}}" - # Checks out the repository - - uses: actions/checkout@v2 + # Checks out the repository + - uses: actions/checkout@v2 - # Installs libraries - - name: install musl-gcc - run: sudo apt-get install -y musl-tools - if: matrix.os == 'ubuntu-latest' + # Installs libraries + - name: install musl-gcc + run: sudo apt-get install -y musl-tools + if: matrix.os == 'ubuntu-latest' - # Sets path (Linux, macOS) - - name: Update $PATH - shell: bash - run: | - echo "$HOME/.nimble/bin" >> $GITHUB_PATH - echo $GITHUB_WORKSPACE >> $GITHUB_PATH + # Sets path (Linux, macOS) + - name: Update $PATH + shell: bash + run: | + echo "$HOME/.nimble/bin" >> $GITHUB_PATH + echo $GITHUB_WORKSPACE >> $GITHUB_PATH - # Sets path (Windows) - - name: Update %PATH% - run: | - echo "${HOME}/.nimble/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - echo "${GITHUB_WORKSPACE}" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - if: matrix.os == 'windows-latest' + # Sets path (Windows) + - name: Update %PATH% + run: | + echo "${HOME}/.nimble/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "${GITHUB_WORKSPACE}" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + if: matrix.os == 'windows-latest' - # Install the Nim compiler - - name: Install Nim - run: | - curl https://nim-lang.org/choosenim/init.sh -sSf > init.sh - sh init.sh -y - - # Install HastyScribe - - name: Install HastyScribe (macOS/Linux) - shell: bash - run: | - curl https://github.com/h3rald/hastyscribe/releases/download/v1.12.3/hastyscribe_v1.12.3_${{steps.os.outputs.id}}_x64.zip -L -o hastyscribe.zip - unzip hastyscribe.zip - mv src/hastyscribe . - - # Temporary Windows-specific fix (missing certificates for nimble) - - name: Install cert (temporary fix, windows only) - run: | - curl https://curl.se/ca/cacert.pem -L -o cacert.pem - if: matrix.os == 'windows-latest' + # Install the Nim compiler + - name: Install Nim + run: | + curl https://nim-lang.org/choosenim/init.sh -sSf > init.sh + sh init.sh -y - # Build for Linux - - name: Build (Linux) - run: nimble build -v -y -d:release --gcc.exe:musl-gcc --gcc.linkerexe:musl-gcc --gc:orc --opt:size litestore - if: matrix.os == 'ubuntu-latest' + # Install HastyScribe + - name: Install HastyScribe (macOS/Linux) + shell: bash + run: | + curl https://github.com/h3rald/hastyscribe/releases/download/v1.12.3/hastyscribe_v1.12.3_${{steps.os.outputs.id}}_x64.zip -L -o hastyscribe.zip + unzip hastyscribe.zip + mv src/hastyscribe . - # Build for macOS/Windows - - name: Build (macOS, Windows) - shell: bash - run: nimble build -v -y -d:release --gc:orc --opt:size litestore - if: matrix.os == 'macos-latest' || matrix.os == 'windows-latest' - - # Import admin directory and create default db - - name: Import Admin - shell: bash - run: | - cp -r src/admin/ admin/ - litestore -d:admin import - - # Build guide - - name: Build guide - shell: bash - run: build_guide + # Temporary Windows-specific fix (missing certificates for nimble) + - name: Install cert (temporary fix, windows only) + run: | + curl https://curl.se/ca/cacert.pem -L -o cacert.pem + if: matrix.os == 'windows-latest' - # Retrieve ID and Name of the current (draft) release - - name: "Get current release" - id: current-release - uses: InsonusK/get-latest-release@v1.0.1 - with: - myToken: ${{ github.token }} - exclude_types: "release" - view_top: 1 + # Build for Linux + - name: Build (Linux) + run: nimble build -v -y --passL:-static -d:release --gcc.exe:musl-gcc --gcc.linkerexe:musl-gcc --gc:orc --opt:size litestore + if: matrix.os == 'ubuntu-latest' - # Package the resulting Linux/macOS binary - - name: Create artifact (Linux, macOS) - shell: bash - run: zip litestore_${{steps.current-release.outputs.tag_name}}_${{steps.os.outputs.id}}_x64.zip litestore data.db LiteStore_UserGuide.htm - if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' + # Build for macOS/Windows + - name: Build (macOS, Windows) + shell: bash + run: nimble build -v -y -d:release --gc:orc --opt:size litestore + if: matrix.os == 'macos-latest' || matrix.os == 'windows-latest' - # Package the resulting Windows binary - - name: Create artifact (Windows) - run: Compress-Archive -Path litestore.exe, data.db, LiteStore_UserGuide.htm -DestinationPath litestore_${{steps.current-release.outputs.tag_name}}_windows_x64.zip - if: matrix.os == 'windows-latest' + # Import admin directory and create default db + - name: Import Admin + shell: bash + run: | + cp -r src/admin/ admin/ + litestore -d:admin import + + # Build guide + - name: Build guide + shell: bash + run: build_guide + + # Retrieve ID and Name of the current (draft) release + - name: 'Get current release' + id: current-release + uses: InsonusK/get-latest-release@v1.0.1 + with: + myToken: ${{ github.token }} + exclude_types: 'release' + view_top: 1 + + # Package the resulting Linux/macOS binary + - name: Create artifact (Linux, macOS) + shell: bash + run: zip litestore_${{steps.current-release.outputs.tag_name}}_${{steps.os.outputs.id}}_x64.zip litestore data.db LiteStore_UserGuide.htm + if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' + + # Package the resulting Windows binary + - name: Create artifact (Windows) + run: Compress-Archive -Path litestore.exe, data.db, LiteStore_UserGuide.htm -DestinationPath litestore_${{steps.current-release.outputs.tag_name}}_windows_x64.zip + if: matrix.os == 'windows-latest' - # Upload artifacts to current draft release - - name: "Upload to current release" - uses: xresloader/upload-to-github-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - file: "litestore_v*.zip" - overwrite: true - tag_name: ${{steps.current-release.outputs.tag_name}} - release_id: ${{steps.current-release.outputs.id }} - verbose: true + # Upload artifacts to current draft release + - name: 'Upload to current release' + uses: xresloader/upload-to-github-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + file: 'litestore_v*.zip' + overwrite: true + tag_name: ${{steps.current-release.outputs.tag_name}} + release_id: ${{steps.current-release.outputs.id }} + verbose: true