-
Notifications
You must be signed in to change notification settings - Fork 1
66 lines (62 loc) · 3.69 KB
/
dockerimage.yml
File metadata and controls
66 lines (62 loc) · 3.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
name: Docker Image CI
on:
workflow_dispatch:
push:
branches: [ master ]
env:
current_user: ${{ github.actor }}
cmssw_ver: CMSSW_10_2_21
treemaker_branch: Run2_2017
jobs:
service-x-build:
name: Mirror, run GitLab CI, produce ServiceX Docker image
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[skip service-x]') && github.event_name != 'pull_request'"
steps:
- name: Reset user on push
if: github.event_name == 'push'
run: echo "current_user=$(echo ${{ github.repository }} | sed -E 's|/.*||')" >> $GITHUB_ENV
- name: Look at key environment variables
run: echo -e "GITHUB_REF=${{ github.ref }}\nGITHUB_HEAD_REF=${{ github.head_ref }}\nGITHUB_BASE_REF=${{ github.base_ref }}\nGITHUB_ACTOR=${{ github.actor }}\nGITHUB_REPOSITORY=${{ github.repository }}\nGITHUB_SHA=${{ github.sha }}\nUSER=${{ env.current_user }}\nTREEMAKER_BRANCH=${{ env.treemaker_branch }}\nTIME=${{ steps.current-time.outputs.formattedTime }}"
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@v1
- name: Mirror + trigger CI
uses: aperloff/gitlab-mirror-and-ci-action@master
with:
args: "https://gitlab.cern.ch/treemaker/ServiceX-Transformer"
env:
GITLAB_HOSTNAME: "gitlab.cern.ch"
GITLAB_USERNAME: ${{ secrets.GITLAB_USERNAME }}
GITLAB_PASSWORD: ${{ secrets.GITLAB_PASSWORD }}
GITLAB_PROJECT_ID: "100143"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CHECKOUT_BRANCH: master
POLL_TIMEOUT: 60
service-x-build-cvmfs:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[skip service-x]') && github.event_name != 'pull_request'"
steps:
- name: Reset user on push
if: github.event_name == 'push'
run: echo "current_user=$(echo ${{ github.repository }} | sed -E 's|/.*||')" >> $GITHUB_ENV
- name: Set the container user
run: echo "container_user=cmsusr" >> $GITHUB_ENV
- name: Build a Service-X compatible Docker image
env:
container_home: /home/${{ env.container_user }}/
download_url: https://cernbox.cern.ch/index.php/s/DsfTPyDEgCjTmBQ/download
file_name: eos.opendata.cms.MonteCarlo2016.RunIISummer16MiniAODv2.QCD_Pt_600to800_TuneCUETP8M1_13TeV_pythia8.MINIAODSIM.PUMoriond17_80X_mcRun2_asymptotic_2016_TrancheIV_v6-v1.70000.0048131D-3CB3-E611-813A-001E67DFFB31_100evt.root
base_image: treemaker/treemaker:${{ env.treemaker_branch }}-latest
docker_options: -t -P --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined -e CVMFS_MOUNTS="cms.cern.ch" --name treemaker --entrypoint "/bin/bash"
run: docker run ${{ env.docker_options }} ${{ env.base_image }} -c "mkdir /servicex/ && chown -R ${{ env.container_user }}:${{ env.container_user }} /servicex && /run.sh -c \"git clone https://github.com/${{ env.current_user }}/ServiceX-Transformer.git && ${{ env.container_home }}/ServiceX-Transformer/scripts/setup.sh -c ${{ env.cmssw_ver }} -f ${{ env.file_name }} -u ${{ env.download_url }} && rm -rf ${{ env.container_home }}/ServiceX-Transformer/\" && cvmfs_config wipecache"
- name: Commit the changes
run: docker commit -c 'ENTRYPOINT ["/run.sh"]' -c 'CMD []' treemaker treemaker/treemaker:${{ env.treemaker_branch }}-servicex-cvmfs
- name: Log into registry
if: env.current_user == 'TreeMaker'
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin
- name: Publish the new docker image
if: env.current_user == 'TreeMaker'
run: docker push treemaker/treemaker:${{ env.treemaker_branch }}-servicex-cvmfs