Remove RUN --mount=type=bind hack for .py scripts #583
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: Worker docker image | |
| on: | |
| push: | |
| branches: | |
| - develop | |
| tags: | |
| - '[0-9]+.[0-9]+.[0-9]+' | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| DEFAULT_PYTHON: '3.13' | |
| jobs: | |
| release: | |
| name: Build & push worker image to Dockerhub | |
| runs-on: ubuntu-latest | |
| if: github.repository == 'MobileTeleSystems/syncmaster' # prevent running on forks | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Set up Python ${{ env.DEFAULT_PYTHON }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ env.DEFAULT_PYTHON }} | |
| - name: Get version | |
| id: get_version | |
| run: | | |
| echo "VERSION=$(cat syncmaster/VERSION)" >> $GITHUB_ENV | |
| - name: Docker meta | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: mtsrus/syncmaster-worker | |
| labels: | | |
| org.opencontainers.image.title=SyncMaster Worker | |
| org.opencontainers.image.vendor=MTS PJSC | |
| org.opencontainers.image.documentation=https://syncmaster.readthedocs.io | |
| org.opencontainers.image.url=https://hub.docker.com/r/mtsrus/syncmaster-worker | |
| org.opencontainers.image.authors=MWS Data Bridge <[email protected]> | |
| org.opencontainers.image.version=${{ env.VERSION }} | |
| - name: Set platforms | |
| id: set_platforms | |
| run: | | |
| # Building krb5 on ARM is time consuming, do this only at release | |
| if [[ "${{ github.ref_type }}" == "branch" && "${{ github.ref_name }}" == "develop" ]]; then | |
| echo "PLATFORMS=linux/amd64" >> $GITHUB_ENV | |
| elif [[ "${{ github.ref_type }}" == "tag" ]]; then | |
| echo "PLATFORMS=linux/amd64,linux/arm64/v8" >> $GITHUB_ENV | |
| fi | |
| - name: Build worker image | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| target: prod | |
| file: docker/Dockerfile.worker | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| pull: true | |
| push: true | |
| cache-to: type=gha,mode=max,scope=worker | |
| cache-from: type=gha,scope=worker | |
| platforms: ${{ env.PLATFORMS }} | |
| provenance: mode=max | |
| sbom: true | |
| - name: Convert README to Markdown | |
| uses: docker://pandoc/core:2.9 | |
| with: | |
| args: >- | |
| --output=README.md | |
| --from=rst | |
| --to=gfm | |
| --wrap=none | |
| README.rst | |
| - name: Update DockerHub Description | |
| uses: peter-evans/dockerhub-description@v5 | |
| if: github.ref_type == 'tag' | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| # this requires token with read+write+delete permissions. read+write is not enough! | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| repository: mtsrus/syncmaster-worker | |
| short-description: ${{ github.event.repository.description }} (Worker) | |
| enable-url-completion: true |