diff --git a/.github/workflows/standard-build.yml b/.github/workflows/standard-build.yml index 60341e5..3644f68 100644 --- a/.github/workflows/standard-build.yml +++ b/.github/workflows/standard-build.yml @@ -14,24 +14,15 @@ env: DTC_VERSION: v3.1.2 jobs: - docker: + build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build Image uses: docker/build-push-action@v3 @@ -41,6 +32,37 @@ jobs: load: true # TODO Make tag/version dependent on branch (push normal version only when on main branch, otherwise derive temporary version from branch name/datetime/commit-id/...) tags: doctoolchain/doctoolchain:${{ env.DTC_VERSION }} + - + name: Create upload folder + run: mkdir /tmp/upload + - + name: Build and export + uses: docker/build-push-action@v5 + with: + context: alpine + build-args: DTC_VERSION=${{ env.DTC_VERSION }} + tags: doctoolchain/doctoolchain:${{ env.DTC_VERSION }} + outputs: type=docker,dest=/tmp/upload/build.tar + - + name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: image + path: /tmp/upload + + test: + runs-on: ubuntu-latest + needs: [build] + steps: + - + name: Download artifact + uses: actions/download-artifact@v3 + with: + name: image + path: /tmp/upload/ + - + name: Load image + run: docker load --input /tmp/upload/build.tar - name: Test Image run: | @@ -50,6 +72,28 @@ jobs: -w /workspace \ doctoolchain/doctoolchain:${{ env.DTC_VERSION }} \ bash -c "set -eu; test -w /etc/environment && ls -l /etc/environment; doctoolchain . tasks" + + + deploy: + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/master' + needs: [build, test] + steps: + - + name: Download artifact + uses: actions/download-artifact@v3 + with: + name: image + path: /tmp/upload/ + - + name: Load image + run: docker load --input /tmp/upload/build.tar + - + name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Push Image uses: docker/build-push-action@v3