all repos — hastyscribe @ a71105e09677538c043e4f671bab9b36da40b3e3

A professional markdown compiler.

Added workflows
h3rald h3rald@h3rald.com
Mon, 19 Apr 2021 19:56:36 +0200
commit

a71105e09677538c043e4f671bab9b36da40b3e3

parent

892c1bfdf5131a624e93ea847a05a1e8d67e52e8

3 files changed, 164 insertions(+), 21 deletions(-)

jump to
A .github/workflows/add-artifacts-to-current-release.yml

@@ -0,0 +1,116 @@

+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: + +jobs: + 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 + + 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'}}" + + # 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' + + # 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' + + # Install the Nim compiler + - name: Install Nim + run: | + curl https://nim-lang.org/choosenim/init.sh -sSf > init.sh + sh init.sh -y + + # 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' + + # Build for Linux + - name: Build (Linux) + run: | + nimble install -y nifty + nifty install + nimble build -v -y -d:release --gcc.exe:musl-gcc --gcc.linkerexe:musl-gcc --gc:orc --opt:size + if: matrix.os == 'ubuntu-latest' + + # Build for macOS/Windows + - name: Build (macOS, Windows) + shell: bash + run: | + nimble install -y nifty + nifty install + nimble build -v -y -d:release --gc:orc --opt:size + if: matrix.os == 'macos-latest' || 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 + + # Package the resulting Linux/macOS binary + - name: Create artifact (Linux, macOS) + shell: bash + run: zip hastyscribe_${{steps.current-release.outputs.tag_name}}_${{steps.os.outputs.id}}_x64.zip hastyscribe + if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' + + # Package the resulting Windows binary + - name: Create artifact (Windows) + run: Compress-Archive -Path hastyscribe.exe -DestinationPath hastyscribe_${{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: "hastyscribe_v*.zip" + overwrite: true + tag_name: ${{steps.current-release.outputs.tag_name}} + release_id: ${{steps.current-release.outputs.id }} + verbose: true
A .github/workflows/ci.yml

@@ -0,0 +1,48 @@

+name: CI + +# Controls when the action will run. +on: + # Triggers the workflow on push or pull request events but only for the master branch + push: + branches: [master] + tags-ignore: ["**"] + pull_request: + branches: [master] + tags-ignore: ["**"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "ci" + ci: + # The type of runner that the job will run on + runs-on: ubuntu-latest + env: + CHOOSENIM_CHOOSE_VERSION: stable + CHOOSENIM_NO_ANALYTICS: 1 + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + - name: install musl-gcc + run: sudo apt-get install -y musl-tools + + - name: Update $PATH + run: echo "$HOME/.nimble/bin" >> $GITHUB_PATH + + - name: Install Nim + run: | + curl https://nim-lang.org/choosenim/init.sh -sSf > init.sh + sh init.sh -y + + - name: Build + run: | + nimble build -y -d:release --gcc.exe:musl-gcc --gcc.linkerexe:musl-gcc + nimble install -y nifty + nifty install + nimble build -y -d:release --gcc.exe:musl-gcc --gcc.linkerexe:musl-gcc + ./build_guide
D .travis.yml

@@ -1,21 +0,0 @@

-language: c -cache: - directories: - - "$HOME/.nimble" - - "$HOME/.choosenim" -install: - - export CHOOSENIM_CHOOSE_VERSION="1.0.0" - - | - curl https://nim-lang.org/choosenim/init.sh -sSf > init.sh - sh init.sh -y -before_script: - - set -e - - set -x - - export PATH=$HOME/.nimble/bin:$PATH - - export CHOOSENIM_NO_ANALYTICS=1 -script: - - nimble install -y nifty - - nifty install - - nifty build discount - - nimble -y build - - ./build_guide