chore(deps): bump tar from 0.4.45 to 0.4.46 #245
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: release | |
| on: | |
| pull_request: | |
| types: [closed] | |
| branches: [main] | |
| workflow_dispatch: | |
| inputs: | |
| dry_run: | |
| description: Dry run | |
| required: true | |
| default: true | |
| type: boolean | |
| permissions: | |
| contents: write | |
| packages: write | |
| id-token: write | |
| jobs: | |
| compute-dry-run: | |
| runs-on: ubuntu-latest | |
| # only run if workflow dispatch or pull request merged *with* tag 'version-bump' | |
| if: > | |
| github.event_name == 'workflow_dispatch' || | |
| ( | |
| github.event.pull_request.merged == true && | |
| contains(github.event.pull_request.labels.*.name, 'version-bump') | |
| ) | |
| outputs: | |
| is_dry_run: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.dry_run == 'true' }} | |
| steps: | |
| - name: Compute effective dry-run | |
| run: | | |
| if [ "${{ github.event_name }}" = "workflow_dispatch" ] \ | |
| && [ "${{ github.event.inputs.dry_run }}" = "true" ]; then | |
| echo "Running in DRY-RUN mode" | |
| else | |
| echo "Running in LIVE mode" | |
| fi | |
| create-tag: | |
| if: > | |
| github.event_name == 'workflow_dispatch' || | |
| (github.event_name == 'pull_request' && github.event.pull_request.merged == true) | |
| runs-on: ubuntu-latest | |
| needs: ["compute-dry-run"] | |
| outputs: | |
| version: ${{ steps.version.outputs.version }} | |
| prerelease: ${{ steps.version.outputs.is_prerelease == 'true' }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: { fetch-depth: 0 } | |
| - name: Get current version | |
| id: version | |
| uses: mozilla-ai/cargo-goosectl/actions/current-version@v1 | |
| with: | |
| force-single-version: true | |
| - name: Create git tag | |
| if: needs.compute-dry-run.outputs.is_dry_run != 'true' | |
| run: | | |
| VERSION=${{ steps.version.outputs.version }} | |
| git tag -a "v$VERSION" -m "Version $VERSION" || true | |
| git push origin "v$VERSION" || true | |
| - name: Dry-run tag | |
| if: needs.compute-dry-run.outputs.is_dry_run == 'true' | |
| run: echo "[DRY RUN] would create tag v${{ steps.version.outputs.version }}" | |
| build-macos: | |
| needs: [create-tag, compute-dry-run] | |
| runs-on: macos-14 | |
| strategy: | |
| matrix: | |
| target: | |
| - x86_64-apple-darwin | |
| - aarch64-apple-darwin | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/project-setup | |
| - run: rustup target add ${{ matrix.target }} | |
| - name: Build (macos, ${{ matrix.target }}) | |
| run: | | |
| cargo build --release --target ${{ matrix.target }} | |
| mkdir -p dist | |
| cp target/${{ matrix.target }}/release/encoderfile dist/ | |
| cp target/${{ matrix.target }}/release/encoderfile-runtime dist/ | |
| - name: Package | |
| run: | | |
| mkdir pkg | |
| cp dist/* README.md LICENSE pkg/ | |
| test -f THIRDPARTY.md && cp THIRDPARTY.md pkg/ | |
| tar -czf encoderfile-${{ matrix.target }}.tar.gz -C pkg . | |
| tar -czf encoderfile-runtime-${{ matrix.target }}.tar.gz -C pkg . | |
| - name: Build wheels | |
| run: | | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| uv venv -p python3.13 | |
| mkdir wheels | |
| cargo install --locked maturin | |
| maturin build --release --target ${{ matrix.target }} -m encoderfile-py/Cargo.toml --out wheels -i .venv/bin/python3.13 | |
| - uses: actions/upload-artifact@v6 | |
| # if: needs.compute-dry-run.outputs.is_dry_run != 'true' | |
| with: | |
| name: macos-${{ matrix.target }} | |
| path: | | |
| *.tar.gz | |
| wheels/*.whl | |
| build-linux: | |
| needs: [create-tag, compute-dry-run] | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - arch: amd64 | |
| platform: linux/amd64 | |
| runner: ubuntu-latest | |
| target: x86_64-unknown-linux-gnu | |
| - arch: arm64 | |
| platform: linux/arm64 | |
| runner: ubuntu-24.04-arm | |
| target: aarch64-unknown-linux-gnu | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build (bookworm, ${{ matrix.arch }}) | |
| run: | | |
| docker build \ | |
| -f Dockerfile \ | |
| --target build \ | |
| --load \ | |
| -t encoderfile-build:${{ matrix.arch }} \ | |
| . | |
| CID=$(docker create encoderfile-build:${{ matrix.arch }}) | |
| mkdir -p dist | |
| docker cp "$CID:/app/target/release/encoderfile" dist/ | |
| docker cp "$CID:/app/target/release/encoderfile-runtime" dist/ | |
| docker rm "$CID" | |
| - name: Package | |
| run: | | |
| mkdir pkg | |
| cp dist/* README.md LICENSE pkg/ | |
| test -f THIRDPARTY.md && cp THIRDPARTY.md pkg/ | |
| tar -czf encoderfile-${{ matrix.target }}.tar.gz -C pkg . | |
| tar -czf encoderfile-runtime-${{ matrix.target }}.tar.gz -C pkg . | |
| - name: Build wheels | |
| run: | | |
| sudo apt update && sudo apt install -y protobuf-compiler | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| uv venv -p python3.13 | |
| mkdir wheels | |
| cargo install --locked maturin | |
| maturin build --release --target ${{ matrix.target }} -m encoderfile-py/Cargo.toml --out wheels -i .venv/bin/python3.13 | |
| - uses: actions/upload-artifact@v6 | |
| if: needs.compute-dry-run.outputs.is_dry_run != 'true' | |
| with: | |
| name: linux-${{ matrix.arch }} | |
| path: | | |
| *.tar.gz | |
| wheels/*.whl | |
| release: | |
| needs: [create-tag, build-macos, build-linux, compute-dry-run] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| path: dist | |
| - uses: softprops/action-gh-release@v2 | |
| if: needs.compute-dry-run.outputs.is_dry_run != 'true' | |
| with: | |
| tag_name: v${{ needs.create-tag.outputs.version }} | |
| name: v${{ needs.create-tag.outputs.version }} | |
| prerelease: ${{ needs.create-tag.outputs.prerelease }} | |
| files: dist/**/*.tar.gz | |
| generate_release_notes: true | |
| docker-build: | |
| needs: [release, create-tag, compute-dry-run] | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - arch: amd64 | |
| platform: linux/amd64 | |
| runner: ubuntu-latest | |
| - arch: arm64 | |
| platform: linux/arm64 | |
| runner: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: docker/login-action@v3 | |
| if: needs.compute-dry-run.outputs.is_dry_run != 'true' | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ github.token }} | |
| - name: Build image | |
| run: | | |
| docker build \ | |
| --platform ${{ matrix.platform }} \ | |
| -t ghcr.io/${{ github.repository_owner }}/encoderfile:${{ matrix.arch }}-${{ needs.create-tag.outputs.version }} \ | |
| . | |
| - name: Push image | |
| if: needs.compute-dry-run.outputs.is_dry_run != 'true' | |
| run: | | |
| docker push \ | |
| ghcr.io/${{ github.repository_owner }}/encoderfile:${{ matrix.arch }}-${{ needs.create-tag.outputs.version }} | |
| docker-manifest: | |
| needs: [docker-build, create-tag, compute-dry-run] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: docker/setup-buildx-action@v3 | |
| - uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ github.token }} | |
| - name: Bundle dockerfiles | |
| if: needs.compute-dry-run.outputs.is_dry_run != 'true' | |
| run: | | |
| VERSION=${{ needs.create-tag.outputs.version }} | |
| PRE=${{ needs.create-tag.outputs.prerelease }} | |
| if [[ "$PRE" == "true" ]]; then | |
| docker buildx imagetools create \ | |
| -t ghcr.io/${{ github.repository_owner }}/encoderfile:${VERSION} \ | |
| ghcr.io/${{ github.repository_owner }}/encoderfile:amd64-${VERSION} \ | |
| ghcr.io/${{ github.repository_owner }}/encoderfile:arm64-${VERSION} | |
| else | |
| docker buildx imagetools create \ | |
| -t ghcr.io/${{ github.repository_owner }}/encoderfile:${VERSION} \ | |
| -t ghcr.io/${{ github.repository_owner }}/encoderfile:latest \ | |
| ghcr.io/${{ github.repository_owner }}/encoderfile:amd64-${VERSION} \ | |
| ghcr.io/${{ github.repository_owner }}/encoderfile:arm64-${VERSION} | |
| fi | |
| publish-encoderfile-py: | |
| needs: [release, compute-dry-run] | |
| runs-on: ubuntu-latest | |
| environment: pypi | |
| permissions: | |
| id-token: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/project-setup | |
| - name: Create venv | |
| run: | | |
| uv venv -p python3.13 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| path: dist | |
| - name: Publish wheels | |
| if: needs.compute-dry-run.outputs.is_dry_run != 'true' | |
| run: uv publish dist/**/*.whl | |
| publish-encoderfile: | |
| needs: [release, compute-dry-run] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/project-setup | |
| - name: Cargo publish (dry-run) | |
| run: cargo publish -p encoderfile --dry-run | |
| - name: Cargo publish | |
| if: needs.compute-dry-run.outputs.is_dry_run != 'true' | |
| run: cargo publish -p encoderfile | |
| env: | |
| CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} |