diff --git a/.github/workflows/build-docker-images.yaml b/.github/workflows/build-docker-images.yaml deleted file mode 100644 index 447b0c0..0000000 --- a/.github/workflows/build-docker-images.yaml +++ /dev/null @@ -1,59 +0,0 @@ -name: docker-images-build - -on: - push: - branches: "main" - pull_request: - schedule: - - cron: "0 0 * * *" # Daily “At 00:00” - workflow_dispatch: # allows you to trigger manually - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - build: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - jobqueue: ["pbs", "sge", "slurm", "htcondor"] - - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Check versions - run: | - docker version - docker compose version - - name: Building Image - shell: bash -l {0} - run: | - cd ./ci/${{ matrix.jobqueue }} - cp ../environment.yml environment.yml - docker compose build - - name: List images - run: | - docker ps -a - docker images - - - name: Publish main images to DockerHub Registry - if: github.event_name != 'pull_request' && matrix.jobqueue != 'htcondor' - run: | - echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin - docker push daskdev/dask-jobqueue:${{ matrix.jobqueue }} - - - name: Publish secondary SGE images to DockerHub Registry - if: github.event_name != 'pull_request' && matrix.jobqueue == 'sge' - run: | - echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin - docker push daskdev/dask-jobqueue:${{ matrix.jobqueue }}-slave - - #HTCondor images have composed tags. - - name: Publish HTCondor images to DockerHub Registry - if: github.event_name != 'pull_request' && matrix.jobqueue == 'htcondor' - run: | - echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin - docker push daskdev/dask-jobqueue:${{ matrix.jobqueue }}-submit - docker push daskdev/dask-jobqueue:${{ matrix.jobqueue }}-execute diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml new file mode 100644 index 0000000..2a5ab6c --- /dev/null +++ b/.github/workflows/docker.yaml @@ -0,0 +1,76 @@ +name: Docker +on: + push: + branches: "main" + pull_request: + workflow_dispatch: # allows you to trigger manually +# concurrency: +# group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} +# cancel-in-progress: true +env: + MY_GCR_NAMESPACE: 'juliaparallel' + MY_GCR_IMAGENAME: 'dask-jobqueue-ci-images' +permissions: + contents: read + packages: write +jobs: + build-and-push: + runs-on: ubuntu-latest + timeout-minutes: 60 + strategy: + fail-fast: false + matrix: + clustermanager: + - htcondor + # - pbs + # - sge + # - slurm + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + persist-credentials: false + - uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: docker version + run: | + which -a docker + docker version + docker compose version + - name: docker compose build + # shell: bash -l {0} + run: | + cd "./ci/${MATRIX_CLUSTERMANAGER:?}" + cp ../environment.yml environment.yml + docker compose build + env: + MATRIX_CLUSTERMANAGER: ${{ matrix.clustermanager }} + - name: List images + run: | + docker ps -a + docker images + # TODO: Docker login here + # echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin + # - name: docker push to GitHub Container Registry + # if: github.event_name != 'pull_request' && matrix.clustermanager != 'htcondor' + # run: | + # docker push "daskdev/dask-clustermanager:${MATRIX_CLUSTERMANAGER:?}" + # docker push ghcr.io//store:latest + # docker build . --tag ghcr.io//store:latest + # env: + # MATRIX_CLUSTERMANAGER: ${{ matrix.clustermanager }} + # - name: Publish secondary SGE images to GitHub Container Registry + # if: github.event_name != 'pull_request' && matrix.clustermanager == 'sge' + # run: | + # docker push daskdev/dask-clustermanager:${{ matrix.clustermanager }}-slave + - name: Publish HTCondor images to GitHub Container Registry + # HTCondor images have composed tags. + # if: github.event_name != 'pull_request' && matrix.clustermanager == 'htcondor' + run: | + docker push "ghcr.io/${MY_GCR_NAMESPACE:?}/${MY_GCR_IMAGENAME:?}:${MATRIX_CLUSTERMANAGER:?}-submit" + docker push "ghcr.io/${MY_GCR_NAMESPACE:?}/${MY_GCR_IMAGENAME:?}:${MATRIX_CLUSTERMANAGER:?}-execute" + env: + MATRIX_CLUSTERMANAGER: ${{ matrix.clustermanager }} + diff --git a/ci/htcondor/docker-compose.yml b/ci/htcondor/docker-compose.yml index 358aafb..029ac85 100644 --- a/ci/htcondor/docker-compose.yml +++ b/ci/htcondor/docker-compose.yml @@ -12,7 +12,7 @@ services: command: bash -c 'condor_store_cred -p password -f /root/secrets/pool_password ; exec bash -x /start.sh' submit: - image: daskdev/dask-jobqueue:htcondor-submit + image: ghcr.io/juliaparallel/dask-jobqueue-ci-images:htcondor-submit build: context: . target: submit @@ -30,7 +30,7 @@ services: - shared_space:/shared_space execute1: - image: daskdev/dask-jobqueue:htcondor-execute + image: ghcr.io/juliaparallel/dask-jobqueue-ci-images:htcondor-execute build: context: . target: execute @@ -46,7 +46,7 @@ services: - shared_space:/shared_space execute2: - image: daskdev/dask-jobqueue:htcondor-execute + image: ghcr.io/juliaparallel/dask-jobqueue-ci-images:htcondor-execute build: context: . target: execute