name: CI Build on: push: # branches: [ develop, feature/** ] branches: [ releaseNotes ] pull_request: branches: [ develop ] jobs: build-ui: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: '14' - name: NodeModules Cache uses: actions/cache@v2 with: path: '**/node_modules' key: node_modules-${{ hashFiles('**/yarn.lock') }} - name: UI Install run: yarn --cwd ./src/Ombi/ClientApp install - name: Build UI run: yarn --cwd ./src/Ombi/ClientApp run build - name: Publish UI Artifacts uses: actions/upload-artifact@v2 with: name: angular_dist path: | ./src/Ombi/ClientApp/dist unit-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-dotnet@v1 with: dotnet-version: '5.0.x' - name: Nuget Cache uses: actions/cache@v2 with: path: ~/.nuget/packages key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }} restore-keys: | ${{ runner.os }}-nuget - name: Run Unit Tests run: | cd src dotnet test --logger trx --results-directory "TestResults" ## Don't need yet # - name: Upload dotnet test results # uses: actions/upload-artifact@v2 # with: # name: dotnet-results # path: src/TestResults # # Use always() to always run this step to publish test results when there are test failures # if: ${{ always() }} versioning: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 # This is only to get the next version number so we can set the version before compile - name: Conventional Changelog Action id: changelog uses: TriPSs/conventional-changelog-action@v3 with: github-token: ${{ secrets.github_token }} skip-version-file: 'true' skip-commit: 'true' version-file: 'version.json' output-file: 'false' skip-on-empty: 'false' - name: Output version run: | echo "outputs: ${{ steps.changelog.outputs.tag }}" echo "Version: $${{ steps.changelog.outputs.version }}" echo "log: ${{ steps.changelog.outputs.clean_changelog }}" # publish: # runs-on: ubuntu-latest # needs: [ build-ui ] # strategy: # matrix: # include: # - os: win10-x64 # format: zip # compression: zip # - os: win10-x86 # format: zip # compression: zip # - os: linux-x64 # format: tar.gz # compression: tar # - os: linux-arm # format: tar.gz # compression: tar # - os: linux-arm64 # compression: tar # format: tar.gz # - os: osx-x64 # compression: tar # format: tar.gz # steps: # - uses: actions/checkout@v2 # - name: Nuget Cache # uses: actions/cache@v2 # with: # path: ~/.nuget/packages # key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }} # restore-keys: | # ${{ runner.os }}-nuget # # This is only to get the next version number so we can set the version before compile # - name: Conventional Changelog Action # id: pre-build-changelog # uses: TriPSs/conventional-changelog-action@v3 # with: # github-token: ${{ secrets.github_token }} # skip-version-file: 'true' # skip-commit: 'true' # version-file: 'version.json' # output-file: 'false' # - name: Output version # run: | # echo "outputs: ${{ steps.pre-build-changelog.outputs }}" # echo "Version: ${{ steps.pre-build-changelog.outputs.version }}" # echo "Version: ${{ steps.pre-build-changelog.outputs.tag }}" # - name: Set Backend Version # run: | # dotnet tool install -g dotnet-setversion # setversion -r ${{ steps.pre-build-changelog.outputs.version }} # working-directory: src/Ombi # - name: Publish Backend ${{ matrix.os }} # run: dotnet publish -c Release -r ${{ matrix.os }} -o "${{ matrix.os }}" --self-contained true -p:PublishSingleFile=true # working-directory: src/Ombi # - name: Download Angular # uses: actions/download-artifact@v2 # with: # name: angular_dist # path: ~/src/Ombi/dist # - name: Copy Dist to Artifacts # run: | # cd ${{ matrix.os }} # sudo mkdir -p ClientApp/dist # echo "mkdir /ClientApp" # echo "list os (ClientApp should be here)" # ls # cd .. # echo "Copy dist to /ClientApp" # sudo mv ~/src/Ombi/dist/* ${{ matrix.os }}/ClientApp/dist # working-directory: src/Ombi # - name: Archive Release # uses: thedoctor0/zip-release@master # with: # type: '${{ matrix.compression }}' # filename: '../${{ matrix.os }}.${{ matrix.format }}' # path: '.' # directory: 'src/Ombi/${{ matrix.os }}' # - name: Publish Release # uses: actions/upload-artifact@v2 # with: # name: ${{ matrix.os }} # path: | # ./src/Ombi/${{ matrix.os }}.${{ matrix.format }} # release: # needs: [ publish, unit-test ] # runs-on: ubuntu-latest # steps: # - uses: actions/checkout@v2 # - name: Conventional Changelog Action # uses: TriPSs/conventional-changelog-action@v3 # with: # github-token: ${{ secrets.github_token }} # git-message: 'chore(release): {version}' # version-file: 'version.json' # output-file: 'CHANGELOG.md' # - name: Download Artifacts # uses: actions/download-artifact@v2 # with: # path: artifacts