Search code examples
tizentizen-web-app

What are my options for building a Tizen app in Github Actions?


I am building a Tizen/Samsung application. I dig through lots of documentation and blog articles on how to do it but I am on a stage where I want my Github Actions to build the app so I can distribute it to others, like QAs or internal testing. And - So far I haven't found a good solution to achieve a complete CI.


Solution

  • Building a Tizen package can be easily done with Tizen CLI. Basically you can do any kind of thing such as installing Tizen Studio and running a CLI build inside your GitHub workflow file. Here is an example workflow:

    name: build
    
    on:
      push:
      pull_request:
      workflow_dispatch:
    
    jobs:
      build-wgt:
        timeout-minutes: 10
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - name: Install Tizen Studio
            run: |
              sudo apt update
              sudo apt install -y pciutils zip libncurses5 python libpython2.7
              sudo apt clean
              curl http://download.tizen.org/sdk/Installer/tizen-studio_4.1/web-cli_Tizen_Studio_4.1_ubuntu-64.bin -o install.bin
              chmod a+x install.bin
              ./install.bin --accept-license $HOME/tizen-studio
              rm install.bin
          - name: Install Tizen packages
            run: |
              $HOME/tizen-studio/package-manager/package-manager-cli.bin install \
              Certificate-Manager NativeCLI WEARABLE-5.5-WebAppDevelopment-CLI
          - name: Run Tizen CLI build
            run: |
              export PATH=$PATH:$HOME/tizen-studio/tools/ide/bin
              tizen build-web -- [PathToYourProject]
              tizen package -t wgt -- [PathToYourProject]
          - name: Upload artifacts
            uses: actions/upload-artifact@v2
            with:
              name: my-wgt
              path: [PathToYourProject]/[ProjectName].wgt
    

    Note that the script has not been tested and may not work (actually I don't have any experience with Tizen web apps). I just wanted to give you a simple idea of how to get started.

    The remaining thing is to sign the output app with your certificate (using the -s option when running the package command) while keeping the certificate private from your public Docker or GitHub repo. You'll have to figure out how to do it yourself.