name: MXE Docker Image CI on: push: paths: - scripts/docker/mxe-build-container/* - .github/workflows/mxe-docker* jobs: mxe-build-container-stage1: runs-on: ubuntu-latest env: # IMPORTANT: use the second digit to test new versions, each new official build should be n.0 with the first one being 1.0 # as you test changes toward a new release, call those 1.1, 1.2, 1.3, etc # VERSION is just that version presented as a string constant # VERSION: ${{ '1.0' }} steps: - uses: actions/checkout@v1 # Because, reasons, we can't really do anything in YAML, so do this crazy shell callout thingy in order to assemble # sane variables to use later in this job - if someone knows an easier way to do this, please let me know! # This abomination below assembles the docker image NAME and appends ".stage1" to the VERSION - name: set env run: | v=${{ env.VERSION }} s=".stage1" b=${{ github.ref }} # -BRANCH suffix, unless the branch is master b=${b/refs\/heads\//} b=${b,,} # the name needs to be all lower case if [ $b = "master" ] ; then b="" ; else b="-$b" ; fi echo "::set-env name=NAME::subsurface/mxe-build-container${b}:${v}${s}" - name: Build and Publish stage 1 Docker image to Dockerhub uses: elgohr/Publish-Docker-Github-Action@master with: name: ${{ env.NAME }} username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} dockerfile: 'Dockerfile-stage1' workdir: './scripts/docker/mxe-build-container/' - name: Trigger stage 2 to run # this triggers a dispatch event in our own repository - this allows us to work around the # 6h runtime max (as on a two core system the total build time of this container is closer to 7h) # we use the event_type to pass the version that we are building to the second stage run: | curl -XPOST -H 'authorization: token ${{ secrets.ACCESS_TOKEN }}' \ -H "Accept: application/vnd.github.everest-preview+json" \ -H "Content-Type: application/json" \ https://api.github.com/repos/subsurface-divelog/subsurface/dispatches \ --data '{"event_type": "${{ env.VERSION }}", "client_payload": { "target_branch": "${{ github.ref }}" } }'