name: ytld-sub Release on: push: # publish only when pushed to master branches: - master pull_request: jobs: get-version: name: github-release runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: fetch-depth: 0 ref: master # Needed for correct commit count. TODO: define once using GH actions - name: Set version envs 1/3 run: | echo "DATE=$(date +'%Y.%m.%d')" >> $GITHUB_ENV echo "COMMIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - name: Set version envs 2/3 run: | echo "DATE_COMMIT_COUNT=$(git rev-list --count master --since='${{ env.DATE }} 00:00:00')" >> $GITHUB_ENV - name: Set version envs 3/3 run: | echo "LOCAL_VERSION=${{ env.DATE }}+${{ env.COMMIT_HASH }}" >> $GITHUB_ENV if [ ${{ env.COMMIT_HASH }} = "0" ] then echo "PYPI_VERSION=${{ env.DATE }}" >> $GITHUB_ENV else echo "PYPI_VERSION=${{ env.DATE }}.post${{ env.DATE_COMMIT_COUNT }}" >> $GITHUB_ENV fi - name: Test version envs run: | echo "${{ env.PYPI_VERSION }}" echo "${{ env.LOCAL_VERSION }}" ################################################################################################## build-unix: name: build-unix needs: - get-version runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.10' - name: Install and Package run: | sudo apt-get -y install zip pip install -e .[build] EXEC_SUFFIX=_linux make executable zip dist/ytdl-sub_linux.zip dist/ytdl-sub_linux tar czf dist/ytdl-sub_linux.tar.gz dist/ytdl-sub_linux - name: Upload artifacts uses: actions/upload-artifact@v3 with: path: | dist/ytdl-sub_linux dist/ytdl-sub_linux.zip dist/ytdl-sub_linux.tar.gz build-arm: name: build-arm needs: - get-version runs-on: ubuntu-latest strategy: matrix: include: - arm-image: "raspi_2_bullseye:20230102" package-suffix: "_armv7" - arm-image: "raspi_4_bullseye:20230102" package-suffix: "_aarch64" steps: - uses: actions/checkout@v3 - uses: pguyot/arm-runner-action@v2 id: build_image with: base_image: ${{ matrix.arm-image }} commands: | sudo apt-get -y install zip pip install -e .[build] EXEC_SUFFIX=${{ matrix.package-suffix }} make executable zip dist/ytdl-sub${{ matrix.package-suffix }}.zip dist/ytdl-sub${{ matrix.package-suffix }} tar czf dist/ytdl-sub${{ matrix.package-suffix }}.tar.gz dist/ytdl-sub${{ matrix.package-suffix }} - name: Upload artifacts uses: actions/upload-artifact@v3 with: path: | dist/ytdl-sub${{ matrix.package-suffix }} dist/ytdl-sub${{ matrix.package-suffix }}.zip dist/ytdl-sub${{ matrix.package-suffix }}.tar.gz ################################################################################################## github-release: name: github-release needs: - get-version runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Create Release if: ${{ github.ref == 'refs/heads/master' }} id: create_release uses: softprops/action-gh-release@v1 with: name: ytdl-sub ${{ env.PYPI_VERSION }} tag_name: ${{ env.PYPI_VERSION }} body: | See https://github.com/jmbannon/ytdl-sub#installation for installation steps draft: false prerelease: false pypi-publish: name: pypi-publish needs: - get-version runs-on: ubuntu-22.04 strategy: matrix: python-version: [ "3.10" ] steps: - uses: actions/checkout@v3 with: fetch-depth: 0 # Needed for correct commit count. TODO: define once using GH actions ref: master - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Build Wheel run: | make wheel - name: Publish distribution 📦 to PyPI if: ${{ github.ref == 'refs/heads/master' }} uses: pypa/gh-action-pypi-publish@release/v1 with: password: ${{ secrets.PYPI_API_TOKEN }}