name: Build packages on: push: branches: - master release: types: [released, prereleased] jobs: deb: runs-on: ubuntu-16.04 steps: - uses: actions/checkout@v2.3.4 - name: Set up Python 3.8 uses: actions/setup-python@v2.2.1 with: python-version: 3.8 - name: Set up Ruby 2.4 uses: actions/setup-ruby@v1 with: ruby-version: 2.4 - name: Install deps run: | pip install .[all] pip install -r scripts/build-requirements.txt gem install --no-document fpm - name: Build deb run: python scripts/build.py deb - name: Publish deb if: github.event_name == 'release' uses: actions/upload-release-asset@v1.0.2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} asset_path: scripts/fpm/dvc_${{ github.event.release.tag_name }}_amd64.deb asset_name: dvc_${{ github.event.release.tag_name }}_amd64.deb asset_content_type: binary/octet-stream rpm: runs-on: ubuntu-16.04 steps: - uses: actions/checkout@v2.3.4 - name: Set up Python 3.8 uses: actions/setup-python@v2.2.1 with: python-version: 3.8 - name: Set up Ruby 2.4 uses: actions/setup-ruby@v1 with: ruby-version: 2.4 - name: Install deps run: | pip install .[all] pip install -r scripts/build-requirements.txt gem install --no-document fpm - name: Build rpm run: python scripts/build.py rpm - name: Publish rpm if: github.event_name == 'release' uses: actions/upload-release-asset@v1.0.2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} asset_path: scripts/fpm/dvc-${{ github.event.release.tag_name }}-1.x86_64.rpm asset_name: dvc-${{ github.event.release.tag_name }}-1.x86_64.rpm asset_content_type: binary/octet-stream osxpkg: runs-on: macos-10.15 steps: - uses: actions/checkout@v2.3.4 - name: Set up Python 3.8 uses: actions/setup-python@v2.2.1 with: python-version: 3.8 - name: Set up Ruby 2.4 uses: actions/setup-ruby@v1 with: ruby-version: 2.4 - name: Install deps run: | # available lxml (webdav dependency) wheels are built with an old # SDK, which breaks osxpkg notarization. Building from scratch # instead. pip install .[all] --no-binary lxml pip install -r scripts/build-requirements.txt gem install --no-document fpm - name: Build run: python scripts/build.py osxpkg - name: Publish if: github.event_name == 'release' uses: actions/upload-release-asset@v1.0.2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} asset_path: scripts/fpm/dvc-${{ github.event.release.tag_name }}.pkg asset_name: dvc-${{ github.event.release.tag_name }}.pkg asset_content_type: binary/octet-stream exe: runs-on: windows-2019 steps: - uses: actions/checkout@v2.3.4 - name: Set up Python 3.8 uses: actions/setup-python@v2.2.1 with: python-version: 3.8 - name: Install deps run: | pip install .[all] pip install -r scripts/build-requirements.txt - name: Pull images run: | dvc pull - name: Build run: python scripts\build.py exe shell: cmd - name: Publish if: github.event_name == 'release' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} uses: actions/upload-release-asset@v1.0.2 with: upload_url: ${{ github.event.release.upload_url }} asset_path: scripts/innosetup/dvc-${{ github.event.release.tag_name }}.exe asset_name: dvc-${{ github.event.release.tag_name }}.exe asset_content_type: binary/octet-stream pip: runs-on: ubuntu-16.04 steps: - uses: actions/checkout@v2.3.4 - name: Set up Python 3.7 uses: actions/setup-python@v2.2.1 with: python-version: 3.7 - name: Install run: pip install ".[all,tests]" - name: Build packages run: ./scripts/build_package.sh - name: Publish packages to PyPI if: github.event_name == 'release' uses: pypa/gh-action-pypi-publish@master with: user: __token__ password: ${{ secrets.PYPI_TOKEN }} snap: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2.3.4 - name: Build the package uses: snapcore/action-build@v1 id: snapcraft # - name: Test the package # run: | # sudo snap install --dangerous --classic ${{ steps.snapcraft.outputs.snap }} # dvc version # sudo snap remove dvc - name: Publish to the edge channel uses: snapcore/action-publish@v1 if: github.event_name == 'push' with: store_login: ${{ secrets.STORE_LOGIN }} snap: ${{ steps.snapcraft.outputs.snap }} release: edge,v2/edge - name: Publish to the stable channel uses: snapcore/action-publish@v1 if: ${{ github.event_name == 'release' && github.event.release.released }} with: store_login: ${{ secrets.STORE_LOGIN }} snap: ${{ steps.snapcraft.outputs.snap }} release: stable,v2/stable