From c4899cd24cdc14ea980c9ecaecd56d709d554a71 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 21 Jul 2023 10:08:57 -0500 Subject: [PATCH 01/54] add virtual machine building workflow --- .github/workflows/virtualbox_image.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/workflows/virtualbox_image.yml diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml new file mode 100644 index 0000000000..30cf8ca76e --- /dev/null +++ b/.github/workflows/virtualbox_image.yml @@ -0,0 +1,25 @@ +name: Create VirtualBox disk image from Dockerfile + +on: + workflow_dispatch: + push: + paths: + -'docker/*' + -'.github/workflows/virtualbox_image.yml' + +env: + VM_PASSWORD: temppwd + +jobs: + virtualbox_image_build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Build VirtualBox image using d2vm + run: | + git clone https://github.com/linka-cloud/d2vm && cd d2vm + make install + cd .. + sudo d2vm build -p ${{ env.VM_PASSWORD }} -f ./docker/ubuntu_22.04-dev.dockerfile -o pyne.vdi . From 378df2f88f86abd40255fdd87f9456d20c91dacf Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 21 Jul 2023 10:11:00 -0500 Subject: [PATCH 02/54] try to trigger virtual machine workflow --- .github/workflows/virtualbox_image.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 30cf8ca76e..d00edaed4f 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -1,6 +1,7 @@ name: Create VirtualBox disk image from Dockerfile on: + # allows us to run workflows manually workflow_dispatch: push: paths: From b29aa8cda0bb8a8d2f3440dfe54dceebc7c9ce9e Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 21 Jul 2023 10:14:05 -0500 Subject: [PATCH 03/54] fix paths: --- .github/workflows/virtualbox_image.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index d00edaed4f..d04a6d05cb 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -5,8 +5,8 @@ on: workflow_dispatch: push: paths: - -'docker/*' - -'.github/workflows/virtualbox_image.yml' + - 'docker/*' + - '.github/workflows/virtualbox_image.yml' env: VM_PASSWORD: temppwd From bbf5d521d70411acdfea415a3047fc6ac02fbfd0 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 21 Jul 2023 10:19:18 -0500 Subject: [PATCH 04/54] use the correct filepath for d2vm command --- .github/workflows/virtualbox_image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index d04a6d05cb..b898f44dbb 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -23,4 +23,4 @@ jobs: git clone https://github.com/linka-cloud/d2vm && cd d2vm make install cd .. - sudo d2vm build -p ${{ env.VM_PASSWORD }} -f ./docker/ubuntu_22.04-dev.dockerfile -o pyne.vdi . + sudo d2vm/go/bin/d2vm build -p ${{ env.VM_PASSWORD }} -f ./docker/ubuntu_22.04-dev.dockerfile -o pyne.vdi . From 6a34b7172be56f094e02bfce069e5068d6b54e67 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 21 Jul 2023 10:40:42 -0500 Subject: [PATCH 05/54] run which and don't cd out of d2vm repo --- .github/workflows/virtualbox_image.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index b898f44dbb..1dda832b19 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -22,5 +22,5 @@ jobs: run: | git clone https://github.com/linka-cloud/d2vm && cd d2vm make install - cd .. - sudo d2vm/go/bin/d2vm build -p ${{ env.VM_PASSWORD }} -f ./docker/ubuntu_22.04-dev.dockerfile -o pyne.vdi . + which d2vm + sudo ./go/bin/d2vm build -p ${{ env.VM_PASSWORD }} -f ./docker/ubuntu_22.04-dev.dockerfile -o pyne.vdi . From ca51411b1d62169b1f0fabad1ebab3f984f5800d Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 21 Jul 2023 10:50:37 -0500 Subject: [PATCH 06/54] use echo statement to see where error occurs --- .github/workflows/virtualbox_image.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 1dda832b19..b4fae18150 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -23,4 +23,5 @@ jobs: git clone https://github.com/linka-cloud/d2vm && cd d2vm make install which d2vm + echo "make worked" sudo ./go/bin/d2vm build -p ${{ env.VM_PASSWORD }} -f ./docker/ubuntu_22.04-dev.dockerfile -o pyne.vdi . From 10a33ce171b4d5dbc63c8bcc300ada71d2be5a05 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 21 Jul 2023 10:56:27 -0500 Subject: [PATCH 07/54] hypothesis: which is throwing an error --- .github/workflows/virtualbox_image.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index b4fae18150..38075bbd59 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -22,6 +22,7 @@ jobs: run: | git clone https://github.com/linka-cloud/d2vm && cd d2vm make install - which d2vm + cd .. echo "make worked" + which d2vm sudo ./go/bin/d2vm build -p ${{ env.VM_PASSWORD }} -f ./docker/ubuntu_22.04-dev.dockerfile -o pyne.vdi . From ca1a05a542a49f38d34b501a022c41dca7490282 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 21 Jul 2023 11:19:01 -0500 Subject: [PATCH 08/54] download d2vm instead of building it from the repo --- .github/workflows/virtualbox_image.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 38075bbd59..78b2fc81e9 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -20,9 +20,7 @@ jobs: - name: Build VirtualBox image using d2vm run: | - git clone https://github.com/linka-cloud/d2vm && cd d2vm - make install - cd .. + curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_arm64.tar.gz" | tar -xvz d2vm + sudo mv d2vm /usr/local/bin/ echo "make worked" - which d2vm - sudo ./go/bin/d2vm build -p ${{ env.VM_PASSWORD }} -f ./docker/ubuntu_22.04-dev.dockerfile -o pyne.vdi . + sudo d2vm build -p ${{ env.VM_PASSWORD }} -f ./docker/ubuntu_22.04-dev.dockerfile -o pyne.vdi . From 7f87818b306c17217fc3992960c33661fd2dce44 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 21 Jul 2023 11:22:18 -0500 Subject: [PATCH 09/54] use amd64 version instead of arm64 --- .github/workflows/virtualbox_image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 78b2fc81e9..10d73d9999 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -20,7 +20,7 @@ jobs: - name: Build VirtualBox image using d2vm run: | - curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_arm64.tar.gz" | tar -xvz d2vm + curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ echo "make worked" sudo d2vm build -p ${{ env.VM_PASSWORD }} -f ./docker/ubuntu_22.04-dev.dockerfile -o pyne.vdi . From 5d3cf792007a7edf18d80855841355b632d0e1dc Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 21 Jul 2023 14:34:17 -0500 Subject: [PATCH 10/54] modify CHANGELOG.rst --- CHANGELOG.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 5af770a081..9031820492 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -24,8 +24,7 @@ Next Version * Add composite action for BuildTest job in workflows (#1489) * Update run conditions for workflows (#1494) * Fix gamma intensity calculation (#1496) - - + * Add workflow to build virtual machines based on Dockerfile (#1490) v0.7.7 ====== From 6a3303665765383634931fb19eb38029af040573 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Wed, 26 Jul 2023 20:27:56 -0500 Subject: [PATCH 11/54] use images from ghcr.io instead of building from Dockerfile --- .github/workflows/virtualbox_image.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 10d73d9999..0c89be6e89 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -14,6 +14,15 @@ env: jobs: virtualbox_image_build: runs-on: ubuntu-latest + strategy: + matrix: + stage: [base_python, moab, dagmc, openmc] + hdf5: [''] + include: + - stage: dagmc + hdf5: _hdf5 + fail-fast: false + steps: - name: Checkout repository uses: actions/checkout@v3 @@ -23,4 +32,5 @@ jobs: curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ echo "make worked" - sudo d2vm build -p ${{ env.VM_PASSWORD }} -f ./docker/ubuntu_22.04-dev.dockerfile -o pyne.vdi . + sudo d2vm convert ghcr.io/pyne/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}:stable -p ${{ env.VM_PASSWORD }} -o pyne.vdi + \ No newline at end of file From 15886214651f6bc64d70f3b07674c3b5903c2039 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Wed, 26 Jul 2023 20:42:59 -0500 Subject: [PATCH 12/54] log in to ghcr.io --- .github/workflows/virtualbox_image.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 0c89be6e89..92e158b424 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -27,6 +27,13 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build VirtualBox image using d2vm run: | curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm From a42fd7bfce7bac63da3174c7b24692b9b0f0f3a2 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Wed, 26 Jul 2023 20:44:49 -0500 Subject: [PATCH 13/54] pull image from owner repository instead of pyne repository --- .github/workflows/virtualbox_image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 92e158b424..8af6db65e0 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -39,5 +39,5 @@ jobs: curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ echo "make worked" - sudo d2vm convert ghcr.io/pyne/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}:stable -p ${{ env.VM_PASSWORD }} -o pyne.vdi + sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}:stable -p ${{ env.VM_PASSWORD }} -o pyne.vdi \ No newline at end of file From 4c3297e2b7e54978785f28714630e92e0d2e687c Mon Sep 17 00:00:00 2001 From: bquan0 Date: Wed, 26 Jul 2023 20:59:31 -0500 Subject: [PATCH 14/54] use latest tag instead of stable --- .github/workflows/virtualbox_image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 8af6db65e0..bd9ac6cce3 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -39,5 +39,5 @@ jobs: curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ echo "make worked" - sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}:stable -p ${{ env.VM_PASSWORD }} -o pyne.vdi + sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}:latest -p ${{ env.VM_PASSWORD }} -o pyne.vdi \ No newline at end of file From 2858e78d9c46fc490376b63382eba4dae0d87647 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 28 Jul 2023 10:42:07 -0500 Subject: [PATCH 15/54] build pyne image in virtualbox_image.yml, test it, then convert to VM --- .github/workflows/virtualbox_image.yml | 61 +++++++++++++++++++++----- 1 file changed, 51 insertions(+), 10 deletions(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index bd9ac6cce3..b861598ce3 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -10,19 +10,60 @@ on: env: VM_PASSWORD: temppwd + DOCKER_IMAGE_BASENAME: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3 + DOCKER_IMAGE_TAG: :refs_heads_${{ github.ref_name }}-bk0 jobs: - virtualbox_image_build: + pyne_image_build: runs-on: ubuntu-latest - strategy: - matrix: - stage: [base_python, moab, dagmc, openmc] - hdf5: [''] - include: - - stage: dagmc - hdf5: _hdf5 - fail-fast: false + outputs: + image_tag: ${{ steps.output_tag.outputs.image_tag }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build PyNE docker image + ses: firehed/multistage-docker-build-action@v1 + id: build_pyne + with: + repository: ${{ env.DOCKER_IMAGE_BASENAME }} + stages: base_python, moab, dagmc, openmc + server-stage: pyne + quiet: false + tag-latest-on-default: false + dockerfile: docker/ubuntu_22.04-dev.dockerfile + + - id: output_tag + run: | + echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT + + BuildTest: + needs: [pyne_image_build] + runs-on: ubuntu-latest + + container: + image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne${{ needs.multistage_image_build.outputs.image_tag }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: use BuildTest composite action + uses: ./.github/actions/build-test + with: + stage: ${{ matrix.stage }} + hdf5: ${{ matrix.hdf5 }} + + virtualbox_image_build: + needs: [BuildTest] + runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 @@ -39,5 +80,5 @@ jobs: curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ echo "make worked" - sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}:latest -p ${{ env.VM_PASSWORD }} -o pyne.vdi + sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne${{ env.DOCKER_IMAGE_TAG }} -p ${{ env.VM_PASSWORD }} -o pyne.vdi \ No newline at end of file From e7b9224dd1dd2ce263a109863761a864597e1477 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 28 Jul 2023 10:43:15 -0500 Subject: [PATCH 16/54] fix uses: typo --- .github/workflows/virtualbox_image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index b861598ce3..4cfe13d3a4 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -31,7 +31,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Build PyNE docker image - ses: firehed/multistage-docker-build-action@v1 + uses: firehed/multistage-docker-build-action@v1 id: build_pyne with: repository: ${{ env.DOCKER_IMAGE_BASENAME }} From 6427d278233af13eb166ca6935cce789eec520c5 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 4 Aug 2023 13:27:42 -0500 Subject: [PATCH 17/54] upload virtualbox image as artifact using Ahnaf's suggestion, try converting existing image --- .github/workflows/virtualbox_image.yml | 94 ++++++++++++++------------ 1 file changed, 52 insertions(+), 42 deletions(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 4cfe13d3a4..eef6cd97ca 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -14,55 +14,55 @@ env: DOCKER_IMAGE_TAG: :refs_heads_${{ github.ref_name }}-bk0 jobs: - pyne_image_build: - runs-on: ubuntu-latest - outputs: - image_tag: ${{ steps.output_tag.outputs.image_tag }} + # pyne_image_build: + # runs-on: ubuntu-latest + # outputs: + # image_tag: ${{ steps.output_tag.outputs.image_tag }} - steps: - - name: Checkout repository - uses: actions/checkout@v3 + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 - - name: Log in to the Container registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} + # - name: Log in to the Container registry + # uses: docker/login-action@v2 + # with: + # registry: ghcr.io + # username: ${{ github.repository_owner }} + # password: ${{ secrets.GITHUB_TOKEN }} - - name: Build PyNE docker image - uses: firehed/multistage-docker-build-action@v1 - id: build_pyne - with: - repository: ${{ env.DOCKER_IMAGE_BASENAME }} - stages: base_python, moab, dagmc, openmc - server-stage: pyne - quiet: false - tag-latest-on-default: false - dockerfile: docker/ubuntu_22.04-dev.dockerfile + # - name: Build PyNE docker image + # uses: firehed/multistage-docker-build-action@v1 + # id: build_pyne + # with: + # repository: ${{ env.DOCKER_IMAGE_BASENAME }} + # stages: base_python, moab, dagmc, openmc + # server-stage: pyne + # quiet: false + # tag-latest-on-default: false + # dockerfile: docker/ubuntu_22.04-dev.dockerfile - - id: output_tag - run: | - echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT + # - id: output_tag + # run: | + # echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT - BuildTest: - needs: [pyne_image_build] - runs-on: ubuntu-latest + # BuildTest: + # needs: [pyne_image_build] + # runs-on: ubuntu-latest - container: - image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne${{ needs.multistage_image_build.outputs.image_tag }} - steps: - - name: Checkout repository - uses: actions/checkout@v3 + # container: + # image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne${{ needs.multistage_image_build.outputs.image_tag }} + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 - - name: use BuildTest composite action - uses: ./.github/actions/build-test - with: - stage: ${{ matrix.stage }} - hdf5: ${{ matrix.hdf5 }} + # - name: use BuildTest composite action + # uses: ./.github/actions/build-test + # with: + # stage: ${{ matrix.stage }} + # hdf5: ${{ matrix.hdf5 }} virtualbox_image_build: - needs: [BuildTest] + # needs: [BuildTest] runs-on: ubuntu-latest steps: - name: Checkout repository @@ -72,7 +72,7 @@ jobs: uses: docker/login-action@v2 with: registry: ghcr.io - username: ${{ github.repository_owner }} + username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build VirtualBox image using d2vm @@ -80,5 +80,15 @@ jobs: curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ echo "make worked" - sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne${{ env.DOCKER_IMAGE_TAG }} -p ${{ env.VM_PASSWORD }} -o pyne.vdi + sudo d2vm convert ghcr.io/bquan0/pyne_ubuntu_22.04_py3/openmc:df359b744263d9869f345ad0f374f7338b920c0d -p ${{ env.VM_PASSWORD }} -o pyne.vdi + + - name: Upload VirtualBox image as artifact + uses: actions/upload-artifact@v2 + with: + name: virtualbox_image + path: pyne.vdi + + + # + # ghcr.io/${{ github.actor }}/pyne_ubuntu_22.04_py3/pyne${{ env.DOCKER_IMAGE_TAG }} \ No newline at end of file From 8d178ec2fd425fb28b5a7360f4b25e83fa977fcf Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 4 Aug 2023 13:30:34 -0500 Subject: [PATCH 18/54] setup QEMU --- .github/workflows/virtualbox_image.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index eef6cd97ca..1a2f589bac 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -68,6 +68,9 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Log in to the Container registry uses: docker/login-action@v2 with: From 7c5fe96ac684e07132bd509f5786fd53472b7af7 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Sat, 5 Aug 2023 14:59:20 -0500 Subject: [PATCH 19/54] download qemu-utils dependency, remove setup QEMU step --- .github/workflows/virtualbox_image.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 1a2f589bac..a60c70fcbe 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -68,8 +68,8 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + # - name: Set up QEMU + # uses: docker/setup-qemu-action@v2 - name: Log in to the Container registry uses: docker/login-action@v2 @@ -80,6 +80,7 @@ jobs: - name: Build VirtualBox image using d2vm run: | + sudo apt-get qemu-utils curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ echo "make worked" @@ -91,7 +92,5 @@ jobs: name: virtualbox_image path: pyne.vdi - - # # ghcr.io/${{ github.actor }}/pyne_ubuntu_22.04_py3/pyne${{ env.DOCKER_IMAGE_TAG }} \ No newline at end of file From f4b3520dd5c40d90711c003a5623b2aca2caa294 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Sat, 5 Aug 2023 15:02:15 -0500 Subject: [PATCH 20/54] don't forget install keyword after sudo apt-get --- .github/workflows/virtualbox_image.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index a60c70fcbe..a7ca8aa233 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -80,7 +80,8 @@ jobs: - name: Build VirtualBox image using d2vm run: | - sudo apt-get qemu-utils + sudo apt-get update + sudo apt-get install qemu-utils curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ echo "make worked" From 2f9b41fc82da30d4395f688abbe33017a1974679 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Sat, 5 Aug 2023 15:16:23 -0500 Subject: [PATCH 21/54] add all dependencies --- .github/workflows/virtualbox_image.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index a7ca8aa233..08a062af56 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -81,7 +81,15 @@ jobs: - name: Build VirtualBox image using d2vm run: | sudo apt-get update - sudo apt-get install qemu-utils + sudo apt-get install -y --fix-missing \ + util-linux \ + udev \ + parted \ + e2fsprogs \ + mount \ + tar \ + extlinux \ + qemu-utils curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ echo "make worked" From 7b138e1b9c5021e24f3454e9fad786a6f2cb4d60 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Mon, 7 Aug 2023 10:03:29 -0500 Subject: [PATCH 22/54] clean up, remove build and test jobs, convert existing openmc stage image --- .github/workflows/virtualbox_image.yml | 59 ++------------------------ 1 file changed, 3 insertions(+), 56 deletions(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 08a062af56..335fad47a8 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -13,64 +13,13 @@ env: DOCKER_IMAGE_BASENAME: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3 DOCKER_IMAGE_TAG: :refs_heads_${{ github.ref_name }}-bk0 -jobs: - # pyne_image_build: - # runs-on: ubuntu-latest - # outputs: - # image_tag: ${{ steps.output_tag.outputs.image_tag }} - - # steps: - # - name: Checkout repository - # uses: actions/checkout@v3 - - # - name: Log in to the Container registry - # uses: docker/login-action@v2 - # with: - # registry: ghcr.io - # username: ${{ github.repository_owner }} - # password: ${{ secrets.GITHUB_TOKEN }} - - # - name: Build PyNE docker image - # uses: firehed/multistage-docker-build-action@v1 - # id: build_pyne - # with: - # repository: ${{ env.DOCKER_IMAGE_BASENAME }} - # stages: base_python, moab, dagmc, openmc - # server-stage: pyne - # quiet: false - # tag-latest-on-default: false - # dockerfile: docker/ubuntu_22.04-dev.dockerfile - - # - id: output_tag - # run: | - # echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT - - # BuildTest: - # needs: [pyne_image_build] - # runs-on: ubuntu-latest - - # container: - # image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne${{ needs.multistage_image_build.outputs.image_tag }} - # steps: - # - name: Checkout repository - # uses: actions/checkout@v3 - - # - name: use BuildTest composite action - # uses: ./.github/actions/build-test - # with: - # stage: ${{ matrix.stage }} - # hdf5: ${{ matrix.hdf5 }} - +jobs: virtualbox_image_build: - # needs: [BuildTest] runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - - # - name: Set up QEMU - # uses: docker/setup-qemu-action@v2 - + - name: Log in to the Container registry uses: docker/login-action@v2 with: @@ -93,13 +42,11 @@ jobs: curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ echo "make worked" - sudo d2vm convert ghcr.io/bquan0/pyne_ubuntu_22.04_py3/openmc:df359b744263d9869f345ad0f374f7338b920c0d -p ${{ env.VM_PASSWORD }} -o pyne.vdi + sudo d2vm convert ghcr.io/${{ github.actor }}/pyne_ubuntu_22.04_py3/openmc:${{ env.DOCKER_IMAGE_TAG }} -p ${{ env.VM_PASSWORD }} -o pyne.vdi - name: Upload VirtualBox image as artifact uses: actions/upload-artifact@v2 with: name: virtualbox_image path: pyne.vdi - - # ghcr.io/${{ github.actor }}/pyne_ubuntu_22.04_py3/pyne${{ env.DOCKER_IMAGE_TAG }} \ No newline at end of file From 591a6c251a97af4f0d477b4cbd8c88c4f6011223 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Mon, 7 Aug 2023 21:34:19 -0500 Subject: [PATCH 23/54] try pulling openmc image from pyne --- .github/workflows/virtualbox_image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 335fad47a8..a4a73af856 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -42,7 +42,7 @@ jobs: curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ echo "make worked" - sudo d2vm convert ghcr.io/${{ github.actor }}/pyne_ubuntu_22.04_py3/openmc:${{ env.DOCKER_IMAGE_TAG }} -p ${{ env.VM_PASSWORD }} -o pyne.vdi + sudo d2vm convert ghcr.io/pyne/pyne_ubuntu_22.04_py3/openmc:latest -p ${{ env.VM_PASSWORD }} -o pyne.vdi - name: Upload VirtualBox image as artifact uses: actions/upload-artifact@v2 From 5389da771fe3dadff06c5177793d47076251b047 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Mon, 7 Aug 2023 21:46:19 -0500 Subject: [PATCH 24/54] add back jobs to build and test pyne image --- .github/workflows/virtualbox_image.yml | 50 +++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index a4a73af856..fc8c613b38 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -13,8 +13,56 @@ env: DOCKER_IMAGE_BASENAME: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3 DOCKER_IMAGE_TAG: :refs_heads_${{ github.ref_name }}-bk0 -jobs: +jobs: + pyne_image_build: + runs-on: ubuntu-latest + outputs: + image_tag: ${{ steps.output_tag.outputs.image_tag }} + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build PyNE docker image + uses: firehed/multistage-docker-build-action@v1 + id: build_pyne + with: + repository: ${{ env.DOCKER_IMAGE_BASENAME }} + stages: base_python, moab, dagmc, openmc + server-stage: pyne + quiet: false + tag-latest-on-default: false + dockerfile: docker/ubuntu_22.04-dev.dockerfile + + - id: output_tag + run: | + echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT + + BuildTest: + needs: [pyne_image_build] + runs-on: ubuntu-latest + + container: + image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne${{ needs.multistage_image_build.outputs.image_tag }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: use BuildTest composite action + uses: ./.github/actions/build-test + with: + stage: ${{ matrix.stage }} + hdf5: ${{ matrix.hdf5 }} + virtualbox_image_build: + needs: [BuildTest] runs-on: ubuntu-latest steps: - name: Checkout repository From 43d6b45462e730039987079928e040681d470433 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Mon, 7 Aug 2023 22:02:00 -0500 Subject: [PATCH 25/54] fix tag variable in image: of BuildTest --- .github/workflows/virtualbox_image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index fc8c613b38..3cf70e02d0 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -50,7 +50,7 @@ jobs: runs-on: ubuntu-latest container: - image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne${{ needs.multistage_image_build.outputs.image_tag }} + image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne${{ needs.pyne_image_build.outputs.image_tag }} steps: - name: Checkout repository uses: actions/checkout@v3 From c6c7cbfb7721d7f4dce33c213b666a0d063a6f5d Mon Sep 17 00:00:00 2001 From: bquan0 Date: Mon, 7 Aug 2023 22:29:19 -0500 Subject: [PATCH 26/54] convert the pyne image we just built into a VM --- .github/workflows/virtualbox_image.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 3cf70e02d0..a9f92d8077 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -90,10 +90,10 @@ jobs: curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ echo "make worked" - sudo d2vm convert ghcr.io/pyne/pyne_ubuntu_22.04_py3/openmc:latest -p ${{ env.VM_PASSWORD }} -o pyne.vdi + sudo d2vm convert ghcr.io/${{ github.actor }}/pyne_ubuntu_22.04_py3/pyne:${{ env.DOCKER_IMAGE_TAG }} -p ${{ env.VM_PASSWORD }} -o pyne.vdi - name: Upload VirtualBox image as artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: virtualbox_image path: pyne.vdi From 61a131642475ae67970a470fb4e4ade1be51097c Mon Sep 17 00:00:00 2001 From: bquan0 Date: Mon, 7 Aug 2023 22:59:18 -0500 Subject: [PATCH 27/54] test if we can pull pyne image --- .github/workflows/virtualbox_image.yml | 83 +++++++++++++------------- 1 file changed, 41 insertions(+), 42 deletions(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index a9f92d8077..0c5a89f8ac 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -14,55 +14,55 @@ env: DOCKER_IMAGE_TAG: :refs_heads_${{ github.ref_name }}-bk0 jobs: - pyne_image_build: - runs-on: ubuntu-latest - outputs: - image_tag: ${{ steps.output_tag.outputs.image_tag }} + # pyne_image_build: + # runs-on: ubuntu-latest + # outputs: + # image_tag: ${{ steps.output_tag.outputs.image_tag }} - steps: - - name: Checkout repository - uses: actions/checkout@v3 + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 - - name: Log in to the Container registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} + # - name: Log in to the Container registry + # uses: docker/login-action@v2 + # with: + # registry: ghcr.io + # username: ${{ github.repository_owner }} + # password: ${{ secrets.GITHUB_TOKEN }} - - name: Build PyNE docker image - uses: firehed/multistage-docker-build-action@v1 - id: build_pyne - with: - repository: ${{ env.DOCKER_IMAGE_BASENAME }} - stages: base_python, moab, dagmc, openmc - server-stage: pyne - quiet: false - tag-latest-on-default: false - dockerfile: docker/ubuntu_22.04-dev.dockerfile + # - name: Build PyNE docker image + # uses: firehed/multistage-docker-build-action@v1 + # id: build_pyne + # with: + # repository: ${{ env.DOCKER_IMAGE_BASENAME }} + # stages: base_python, moab, dagmc, openmc + # server-stage: pyne + # quiet: false + # tag-latest-on-default: false + # dockerfile: docker/ubuntu_22.04-dev.dockerfile - - id: output_tag - run: | - echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT + # - id: output_tag + # run: | + # echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT - BuildTest: - needs: [pyne_image_build] - runs-on: ubuntu-latest + # BuildTest: + # needs: [pyne_image_build] + # runs-on: ubuntu-latest - container: - image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne${{ needs.pyne_image_build.outputs.image_tag }} - steps: - - name: Checkout repository - uses: actions/checkout@v3 + # container: + # image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne${{ needs.pyne_image_build.outputs.image_tag }} + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 - - name: use BuildTest composite action - uses: ./.github/actions/build-test - with: - stage: ${{ matrix.stage }} - hdf5: ${{ matrix.hdf5 }} + # - name: use BuildTest composite action + # uses: ./.github/actions/build-test + # with: + # stage: ${{ matrix.stage }} + # hdf5: ${{ matrix.hdf5 }} virtualbox_image_build: - needs: [BuildTest] + # needs: [BuildTest] runs-on: ubuntu-latest steps: - name: Checkout repository @@ -89,8 +89,7 @@ jobs: qemu-utils curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ - echo "make worked" - sudo d2vm convert ghcr.io/${{ github.actor }}/pyne_ubuntu_22.04_py3/pyne:${{ env.DOCKER_IMAGE_TAG }} -p ${{ env.VM_PASSWORD }} -o pyne.vdi + sudo d2vm convert ghcr.io/${{ github.actor }}/pyne_ubuntu_22.04_py3/pyne${{ env.DOCKER_IMAGE_TAG }} -p ${{ env.VM_PASSWORD }} -o pyne.vdi - name: Upload VirtualBox image as artifact uses: actions/upload-artifact@v3 From f9138276e5618e4d0f3071533e1f83e9afe49d18 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Mon, 7 Aug 2023 23:05:44 -0500 Subject: [PATCH 28/54] add back build and test jobs since we can find correct pyne image now --- .github/workflows/virtualbox_image.yml | 80 +++++++++++++------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 0c5a89f8ac..aa9edac9d7 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -14,55 +14,55 @@ env: DOCKER_IMAGE_TAG: :refs_heads_${{ github.ref_name }}-bk0 jobs: - # pyne_image_build: - # runs-on: ubuntu-latest - # outputs: - # image_tag: ${{ steps.output_tag.outputs.image_tag }} + pyne_image_build: + runs-on: ubuntu-latest + outputs: + image_tag: ${{ steps.output_tag.outputs.image_tag }} - # steps: - # - name: Checkout repository - # uses: actions/checkout@v3 + steps: + - name: Checkout repository + uses: actions/checkout@v3 - # - name: Log in to the Container registry - # uses: docker/login-action@v2 - # with: - # registry: ghcr.io - # username: ${{ github.repository_owner }} - # password: ${{ secrets.GITHUB_TOKEN }} + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} - # - name: Build PyNE docker image - # uses: firehed/multistage-docker-build-action@v1 - # id: build_pyne - # with: - # repository: ${{ env.DOCKER_IMAGE_BASENAME }} - # stages: base_python, moab, dagmc, openmc - # server-stage: pyne - # quiet: false - # tag-latest-on-default: false - # dockerfile: docker/ubuntu_22.04-dev.dockerfile + - name: Build PyNE docker image + uses: firehed/multistage-docker-build-action@v1 + id: build_pyne + with: + repository: ${{ env.DOCKER_IMAGE_BASENAME }} + stages: base_python, moab, dagmc, openmc + server-stage: pyne + quiet: false + tag-latest-on-default: false + dockerfile: docker/ubuntu_22.04-dev.dockerfile - # - id: output_tag - # run: | - # echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT + - id: output_tag + run: | + echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT - # BuildTest: - # needs: [pyne_image_build] - # runs-on: ubuntu-latest + BuildTest: + needs: [pyne_image_build] + runs-on: ubuntu-latest - # container: - # image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne${{ needs.pyne_image_build.outputs.image_tag }} - # steps: - # - name: Checkout repository - # uses: actions/checkout@v3 + container: + image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne${{ needs.pyne_image_build.outputs.image_tag }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 - # - name: use BuildTest composite action - # uses: ./.github/actions/build-test - # with: - # stage: ${{ matrix.stage }} - # hdf5: ${{ matrix.hdf5 }} + - name: use BuildTest composite action + uses: ./.github/actions/build-test + with: + stage: ${{ matrix.stage }} + hdf5: ${{ matrix.hdf5 }} virtualbox_image_build: - # needs: [BuildTest] + needs: [BuildTest] runs-on: ubuntu-latest steps: - name: Checkout repository From cb708e46438a79f7c14e14add102cf14fc5d8875 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Wed, 9 Aug 2023 17:32:59 -0500 Subject: [PATCH 29/54] make workflow run on release only, build pyne only once, tag pyne image as latest --- .github/actions/build-test/action.yml | 5 ++++ .github/workflows/virtualbox_image.yml | 33 +++++++++++++++++++++++--- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/.github/actions/build-test/action.yml b/.github/actions/build-test/action.yml index e13d8cfad8..e5510c7209 100644 --- a/.github/actions/build-test/action.yml +++ b/.github/actions/build-test/action.yml @@ -9,6 +9,10 @@ inputs: description: Information about which version of HDF5 will be used for testing. required: true default: '' + build_pyne: + description: Condition which enables or disables the Building PyNE step. + required: false + default: 'NO' runs: using: "composite" steps: @@ -29,6 +33,7 @@ runs: echo "ADD_FLAG=${ADD_FLAG}" >> $GITHUB_ENV - name: Building PyNE + if: inputs.build_pyne == 'NO' shell: bash -l {0} run: | cd $GITHUB_WORKSPACE diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index aa9edac9d7..e7bf5adf72 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -3,6 +3,9 @@ name: Create VirtualBox disk image from Dockerfile on: # allows us to run workflows manually workflow_dispatch: + release: + types: + - published push: paths: - 'docker/*' @@ -58,8 +61,32 @@ jobs: - name: use BuildTest composite action uses: ./.github/actions/build-test with: - stage: ${{ matrix.stage }} - hdf5: ${{ matrix.hdf5 }} + stage: '' + hdf5: '' + build_pyne: 'YES' + + pushing_test_stable_img: + needs: [BuildTest] + runs-on: ubuntu-latest + steps: + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Push Image to stable img + uses: akhilerm/tag-push-action@v2.1.0 + with: + src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne${{ env.DOCKER_IMAGE_TAG }} + dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:stable + + - name: Push Image to latest img + uses: akhilerm/tag-push-action@v2.1.0 + with: + src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne${{ env.DOCKER_IMAGE_TAG }} + dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:latest virtualbox_image_build: needs: [BuildTest] @@ -89,7 +116,7 @@ jobs: qemu-utils curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ - sudo d2vm convert ghcr.io/${{ github.actor }}/pyne_ubuntu_22.04_py3/pyne${{ env.DOCKER_IMAGE_TAG }} -p ${{ env.VM_PASSWORD }} -o pyne.vdi + sudo d2vm convert ghcr.io/${{ github.actor }}/pyne_ubuntu_22.04_py3/pyne:latest -p ${{ env.VM_PASSWORD }} -o pyne.vdi - name: Upload VirtualBox image as artifact uses: actions/upload-artifact@v3 From 5dee7dda87ae9352b7865e28e3ef98eac87da8b4 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Wed, 9 Aug 2023 17:36:39 -0500 Subject: [PATCH 30/54] fix job dependencies so virtualbox_image_build doesn't run at the same time as pushing_test_stable_img --- .github/workflows/virtualbox_image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index e7bf5adf72..4e05129ddc 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -89,7 +89,7 @@ jobs: dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:latest virtualbox_image_build: - needs: [BuildTest] + needs: [pushing_test_stable_img] runs-on: ubuntu-latest steps: - name: Checkout repository From a747687f7e3f84fcd7b67f4ed6daec79d2a34305 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 11 Aug 2023 19:11:57 -0500 Subject: [PATCH 31/54] add new stage in dockerfile to build pyne on release branch, remove BuildTest job from virtualbox_image.yml --- .github/actions/build-test/action.yml | 5 ----- .github/workflows/virtualbox_image.yml | 17 ---------------- docker/ubuntu_22.04-dev.dockerfile | 28 +++++++++++++++++++++++--- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.github/actions/build-test/action.yml b/.github/actions/build-test/action.yml index e5510c7209..e13d8cfad8 100644 --- a/.github/actions/build-test/action.yml +++ b/.github/actions/build-test/action.yml @@ -9,10 +9,6 @@ inputs: description: Information about which version of HDF5 will be used for testing. required: true default: '' - build_pyne: - description: Condition which enables or disables the Building PyNE step. - required: false - default: 'NO' runs: using: "composite" steps: @@ -33,7 +29,6 @@ runs: echo "ADD_FLAG=${ADD_FLAG}" >> $GITHUB_ENV - name: Building PyNE - if: inputs.build_pyne == 'NO' shell: bash -l {0} run: | cd $GITHUB_WORKSPACE diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 4e05129ddc..33870d403a 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -48,23 +48,6 @@ jobs: run: | echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT - BuildTest: - needs: [pyne_image_build] - runs-on: ubuntu-latest - - container: - image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne${{ needs.pyne_image_build.outputs.image_tag }} - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: use BuildTest composite action - uses: ./.github/actions/build-test - with: - stage: '' - hdf5: '' - build_pyne: 'YES' - pushing_test_stable_img: needs: [BuildTest] runs-on: ubuntu-latest diff --git a/docker/ubuntu_22.04-dev.dockerfile b/docker/ubuntu_22.04-dev.dockerfile index c7b3f94bee..6a3ca7c9d0 100644 --- a/docker/ubuntu_22.04-dev.dockerfile +++ b/docker/ubuntu_22.04-dev.dockerfile @@ -131,8 +131,8 @@ RUN if [ "$build_hdf5" != "NO" ]; then \ && git checkout tags/v0.13.0 \ && pip install . -# Build/Install PyNE -FROM openmc AS pyne +# Build/Install PyNE from develop branch +FROM openmc AS pyne-dev ARG build_hdf5 RUN export PYNE_HDF5_ARGS="" ;\ @@ -150,4 +150,26 @@ ENV PATH $HOME/.local/bin:$PATH RUN if [ "$build_pyne" = "YES" ]; then \ cd $HOME \ && nuc_data_make ; \ - fi + fi \ + ./ci-run-tests.sh python3 + +# Build/Install PyNE from release branch +FROM openmc AS pyne +ARG build_hdf5 + +RUN export PYNE_HDF5_ARGS="" ;\ + if [ "$build_hdf5" != "NO" ]; then \ + export PYNE_HDF5_ARGS="--hdf5 $HDF5_INSTALL_PATH" ; \ + fi; +COPY . $HOME/opt/pyne +RUN cd $HOME/opt/pyne \ + && python setup.py install --user \ + --moab $HOME/opt/moab --dagmc $HOME/opt/dagmc \ + $PYNE_HDF5_ARGS \ + --clean -j 3; +ENV PATH $HOME/.local/bin:$PATH +RUN if [ "$build_pyne" = "YES" ]; then \ + cd $HOME \ + && nuc_data_make ; \ + fi \ + ./ci-run-tests.sh python3 \ No newline at end of file From 3afe5ef27930d29ec0d99690e64bbd71596a17d1 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 11 Aug 2023 19:17:40 -0500 Subject: [PATCH 32/54] fix job dependency after removing BuildTest job --- .github/workflows/virtualbox_image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 33870d403a..2696688728 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -49,7 +49,7 @@ jobs: echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT pushing_test_stable_img: - needs: [BuildTest] + needs: [pyne_image_build] runs-on: ubuntu-latest steps: - name: Log in to the Container registry From b76ce866036e47a0d2f43f67c5f91033a995d664 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 11 Aug 2023 19:33:36 -0500 Subject: [PATCH 33/54] fix test command syntax by adding && in front --- docker/ubuntu_22.04-dev.dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/ubuntu_22.04-dev.dockerfile b/docker/ubuntu_22.04-dev.dockerfile index 6a3ca7c9d0..9a415767bc 100644 --- a/docker/ubuntu_22.04-dev.dockerfile +++ b/docker/ubuntu_22.04-dev.dockerfile @@ -151,7 +151,7 @@ RUN if [ "$build_pyne" = "YES" ]; then \ cd $HOME \ && nuc_data_make ; \ fi \ - ./ci-run-tests.sh python3 + && ./ci-run-tests.sh python3 # Build/Install PyNE from release branch FROM openmc AS pyne @@ -172,4 +172,4 @@ RUN if [ "$build_pyne" = "YES" ]; then \ cd $HOME \ && nuc_data_make ; \ fi \ - ./ci-run-tests.sh python3 \ No newline at end of file + && ./ci-run-tests.sh python3 \ No newline at end of file From 26ee98b2ec8effe894e7189bd17c561446ea6e2a Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 11 Aug 2023 19:51:11 -0500 Subject: [PATCH 34/54] cd into tests directory before running tests --- docker/ubuntu_22.04-dev.dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker/ubuntu_22.04-dev.dockerfile b/docker/ubuntu_22.04-dev.dockerfile index 9a415767bc..18d254031e 100644 --- a/docker/ubuntu_22.04-dev.dockerfile +++ b/docker/ubuntu_22.04-dev.dockerfile @@ -151,6 +151,7 @@ RUN if [ "$build_pyne" = "YES" ]; then \ cd $HOME \ && nuc_data_make ; \ fi \ + && cd $HOME/opt/pyne/tests \ && ./ci-run-tests.sh python3 # Build/Install PyNE from release branch @@ -172,4 +173,5 @@ RUN if [ "$build_pyne" = "YES" ]; then \ cd $HOME \ && nuc_data_make ; \ fi \ + && cd $HOME/opt/pyne/tests \ && ./ci-run-tests.sh python3 \ No newline at end of file From 84de0b60e9792ac7e1d51ac04f0e23a4ea668233 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 11 Aug 2023 20:06:24 -0500 Subject: [PATCH 35/54] add build_pyne argument to multistage action to make the if statement with nuc_data_make run --- .github/workflows/docker_publish.yml | 2 +- docker/ubuntu_22.04-dev.dockerfile | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index 875f7dc41f..773156499a 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -60,7 +60,7 @@ jobs: quiet: false tag-latest-on-default: false dockerfile: docker/ubuntu_22.04-dev.dockerfile - build-args: build_hdf5=hdf5-1_12_0 + build-args: build_hdf5=hdf5-1_12_0, build_pyne=YES - id: output_tag run: | diff --git a/docker/ubuntu_22.04-dev.dockerfile b/docker/ubuntu_22.04-dev.dockerfile index 18d254031e..a04c35614d 100644 --- a/docker/ubuntu_22.04-dev.dockerfile +++ b/docker/ubuntu_22.04-dev.dockerfile @@ -1,4 +1,5 @@ ARG build_hdf5="NO" +ARG build_pyne="NO" ARG ubuntu_version=22.04 FROM ubuntu:${ubuntu_version} AS base_python @@ -134,6 +135,7 @@ RUN if [ "$build_hdf5" != "NO" ]; then \ # Build/Install PyNE from develop branch FROM openmc AS pyne-dev ARG build_hdf5 +ARG build_pyne RUN export PYNE_HDF5_ARGS="" ;\ if [ "$build_hdf5" != "NO" ]; then \ @@ -157,6 +159,7 @@ RUN if [ "$build_pyne" = "YES" ]; then \ # Build/Install PyNE from release branch FROM openmc AS pyne ARG build_hdf5 +ARG build_pyne RUN export PYNE_HDF5_ARGS="" ;\ if [ "$build_hdf5" != "NO" ]; then \ From 84b07b39d146ad00db2db2be17d158fa5ff38b26 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 11 Aug 2023 20:28:34 -0500 Subject: [PATCH 36/54] add the build_pyne build-arg into virtualbox_image.yml instead of docker_publish.yml --- .github/workflows/docker_publish.yml | 2 +- .github/workflows/virtualbox_image.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index 773156499a..875f7dc41f 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -60,7 +60,7 @@ jobs: quiet: false tag-latest-on-default: false dockerfile: docker/ubuntu_22.04-dev.dockerfile - build-args: build_hdf5=hdf5-1_12_0, build_pyne=YES + build-args: build_hdf5=hdf5-1_12_0 - id: output_tag run: | diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 2696688728..64aa5b79be 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -43,6 +43,7 @@ jobs: quiet: false tag-latest-on-default: false dockerfile: docker/ubuntu_22.04-dev.dockerfile + build-args: build_hdf5=hdf5-1_12_0, build_pyne=YES - id: output_tag run: | From 0fdb817daa52506ae3cb91c6971c72141738a0ae Mon Sep 17 00:00:00 2001 From: bquan0 Date: Sun, 13 Aug 2023 15:43:53 -0500 Subject: [PATCH 37/54] remove hdf5 build arg in multistage action --- .github/workflows/virtualbox_image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 64aa5b79be..0e81c96dce 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -43,7 +43,7 @@ jobs: quiet: false tag-latest-on-default: false dockerfile: docker/ubuntu_22.04-dev.dockerfile - build-args: build_hdf5=hdf5-1_12_0, build_pyne=YES + build-args: build_pyne=YES - id: output_tag run: | From 8288d398841fd1c367546d147e1330437d00e860 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Sun, 13 Aug 2023 16:16:37 -0500 Subject: [PATCH 38/54] change github.actor to github.repository_owner in virtualbox_image_build job --- .github/workflows/virtualbox_image.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 0e81c96dce..31b46dd3d1 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -83,7 +83,7 @@ jobs: uses: docker/login-action@v2 with: registry: ghcr.io - username: ${{ github.actor }} + username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build VirtualBox image using d2vm @@ -100,7 +100,7 @@ jobs: qemu-utils curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ - sudo d2vm convert ghcr.io/${{ github.actor }}/pyne_ubuntu_22.04_py3/pyne:latest -p ${{ env.VM_PASSWORD }} -o pyne.vdi + sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne:latest -p ${{ env.VM_PASSWORD }} -o pyne.vdi - name: Upload VirtualBox image as artifact uses: actions/upload-artifact@v3 From c46524899417bbc1d6b75a3b1135408d495f7015 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Sun, 20 Aug 2023 21:19:08 -0500 Subject: [PATCH 39/54] add if statements to change DOCKER_IMAGE_TAG if event is pull_request --- .github/workflows/docker_publish.yml | 8 ++++++++ .github/workflows/virtualbox_image.yml | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index 875f7dc41f..80878cccd4 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -62,6 +62,10 @@ jobs: dockerfile: docker/ubuntu_22.04-dev.dockerfile build-args: build_hdf5=hdf5-1_12_0 + - name: Check event for DOCKER_IMAGE_TAG change + if: github.event_name == 'pull_request' + run: echo "DOCKER_IMAGE_TAG=:refs_heads_${GITHUB_HEAD_REF}-bk0" >> $GITHUB_ENV + - id: output_tag run: | echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT @@ -117,6 +121,10 @@ jobs: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} + + - name: Check event for DOCKER_IMAGE_TAG change + if: github.event_name == 'pull_request' + run: echo "DOCKER_IMAGE_TAG=:refs_heads_${GITHUB_HEAD_REF}-bk0" >> $GITHUB_ENV - name: Push Image to stable img uses: akhilerm/tag-push-action@v2.1.0 diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 31b46dd3d1..f19dacca0b 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -83,7 +83,7 @@ jobs: uses: docker/login-action@v2 with: registry: ghcr.io - username: ${{ github.repository_owner }} + username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build VirtualBox image using d2vm From 9e1452a8465f536bb303b29ed32f11f59530ef3d Mon Sep 17 00:00:00 2001 From: bquan0 Date: Mon, 21 Aug 2023 22:10:27 -0500 Subject: [PATCH 40/54] set tag-latest-on-default to be true, remove code that deals with DOCKER_IMAGE_TAG --- .github/workflows/docker_publish.yml | 29 ++++---------------------- .github/workflows/virtualbox_image.yml | 19 +++-------------- 2 files changed, 7 insertions(+), 41 deletions(-) diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index 80878cccd4..f274491a0d 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -16,7 +16,6 @@ on: env: DOCKER_IMAGE_BASENAME: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3 - DOCKER_IMAGE_TAG: :refs_heads_${{ github.ref_name }}-bk0 jobs: @@ -25,8 +24,6 @@ jobs: # to be built upon by the subsequent stage. multistage_image_build: runs-on: ubuntu-latest - outputs: - image_tag: ${{ steps.output_tag.outputs.image_tag }} steps: - name: Checkout repository @@ -47,7 +44,7 @@ jobs: stages: base_python, moab, dagmc server-stage: openmc quiet: false - tag-latest-on-default: false + tag-latest-on-default: true dockerfile: docker/ubuntu_22.04-dev.dockerfile # build HDF5 using multistage docker build action @@ -58,18 +55,10 @@ jobs: stages: base_python, moab server-stage: dagmc quiet: false - tag-latest-on-default: false + tag-latest-on-default: true dockerfile: docker/ubuntu_22.04-dev.dockerfile build-args: build_hdf5=hdf5-1_12_0 - - name: Check event for DOCKER_IMAGE_TAG change - if: github.event_name == 'pull_request' - run: echo "DOCKER_IMAGE_TAG=:refs_heads_${GITHUB_HEAD_REF}-bk0" >> $GITHUB_ENV - - - id: output_tag - run: | - echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT - # Downloads the images uploaded to ghcr in previous stages and runs pyne # tests to check that they work. BuildTest: @@ -86,7 +75,7 @@ jobs: fail-fast: false container: - image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}${{ needs.multistage_image_build.outputs.image_tag }} + image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}:latest steps: - name: Checkout repository uses: actions/checkout@v3 @@ -121,19 +110,9 @@ jobs: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - - - name: Check event for DOCKER_IMAGE_TAG change - if: github.event_name == 'pull_request' - run: echo "DOCKER_IMAGE_TAG=:refs_heads_${GITHUB_HEAD_REF}-bk0" >> $GITHUB_ENV - name: Push Image to stable img uses: akhilerm/tag-push-action@v2.1.0 with: - src: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}${{ env.DOCKER_IMAGE_TAG }} + src: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}:latest dst: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}:stable - - - name: Push Image to latest img - uses: akhilerm/tag-push-action@v2.1.0 - with: - src: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}${{ env.DOCKER_IMAGE_TAG }} - dst: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}:latest diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index f19dacca0b..5be82adc57 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -14,13 +14,10 @@ on: env: VM_PASSWORD: temppwd DOCKER_IMAGE_BASENAME: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3 - DOCKER_IMAGE_TAG: :refs_heads_${{ github.ref_name }}-bk0 jobs: pyne_image_build: runs-on: ubuntu-latest - outputs: - image_tag: ${{ steps.output_tag.outputs.image_tag }} steps: - name: Checkout repository @@ -41,14 +38,10 @@ jobs: stages: base_python, moab, dagmc, openmc server-stage: pyne quiet: false - tag-latest-on-default: false + tag-latest-on-default: true dockerfile: docker/ubuntu_22.04-dev.dockerfile build-args: build_pyne=YES - - id: output_tag - run: | - echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT - pushing_test_stable_img: needs: [pyne_image_build] runs-on: ubuntu-latest @@ -63,15 +56,9 @@ jobs: - name: Push Image to stable img uses: akhilerm/tag-push-action@v2.1.0 with: - src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne${{ env.DOCKER_IMAGE_TAG }} + src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:latest dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:stable - - name: Push Image to latest img - uses: akhilerm/tag-push-action@v2.1.0 - with: - src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne${{ env.DOCKER_IMAGE_TAG }} - dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:latest - virtualbox_image_build: needs: [pushing_test_stable_img] runs-on: ubuntu-latest @@ -100,7 +87,7 @@ jobs: qemu-utils curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ - sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne:latest -p ${{ env.VM_PASSWORD }} -o pyne.vdi + sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne:latest -p ${{ env.VM_PASSWORD }} -o pyne.vdi - name: Upload VirtualBox image as artifact uses: actions/upload-artifact@v3 From 949a019aba84cf65503ff6cb5a575567525a84ce Mon Sep 17 00:00:00 2001 From: bquan0 Date: Tue, 22 Aug 2023 13:50:48 -0500 Subject: [PATCH 41/54] move testing to dockerfile and multistage action --- .github/workflows/docker_publish.yml | 182 +++++++++++++++---------- .github/workflows/virtualbox_image.yml | 19 ++- docker/ubuntu_22.04-dev.dockerfile | 5 +- 3 files changed, 132 insertions(+), 74 deletions(-) diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index f274491a0d..8f96c742af 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -24,7 +24,19 @@ jobs: # to be built upon by the subsequent stage. multistage_image_build: runs-on: ubuntu-latest + outputs: + image_tag: ${{ steps.output_tag.outputs.image_tag }} + strategy: + matrix: + pyne_test_base: [base_python, moab, dagmc, openmc] + hdf5: [''] + hdf5_build_arg: [''] + include: + - stage: dagmc + hdf5: _hdf5 + hdf5_build_arg: hdf5-1_12_0 + fail-fast: false steps: - name: Checkout repository uses: actions/checkout@v3 @@ -35,84 +47,116 @@ jobs: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} + + - name: modify DOCKER_IMAGE_BASENAME if _hdf5 will be built + if: matrix.hdf5 != '' + run: echo "DOCKER_IMAGE_BASENAME=${env.DOCKER_IMAGE_BASENAME}${matrix.hdf5}" >> $GITHUB_ENV # build base python, moab, dagmc, openmc using multistage docker build action - uses: firehed/multistage-docker-build-action@v1 - id: build_all_stages + id: multistage_build_and_test with: repository: ${{ env.DOCKER_IMAGE_BASENAME }} - stages: base_python, moab, dagmc - server-stage: openmc - quiet: false - tag-latest-on-default: true - dockerfile: docker/ubuntu_22.04-dev.dockerfile - - # build HDF5 using multistage docker build action - - uses: firehed/multistage-docker-build-action@v1 - id: build_dagmc_with_hdf5 - with: - repository: ${{ env.DOCKER_IMAGE_BASENAME }}_hdf5 - stages: base_python, moab - server-stage: dagmc + stages: ${{ matrix.pyne_test_base }} + testenv-stage: ${{ matrix.pyne_test_base }} + server-stage: pyne quiet: false - tag-latest-on-default: true + tag-latest-on-default: false dockerfile: docker/ubuntu_22.04-dev.dockerfile - build-args: build_hdf5=hdf5-1_12_0 - - # Downloads the images uploaded to ghcr in previous stages and runs pyne - # tests to check that they work. - BuildTest: - needs: [multistage_image_build] - runs-on: ubuntu-latest - - strategy: - matrix: - stage: [base_python, moab, dagmc, openmc] - hdf5: [''] - include: - - stage: dagmc - hdf5: _hdf5 - fail-fast: false - - container: - image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}:latest - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: use BuildTest composite action - uses: ./.github/actions/build-test - with: - stage: ${{ matrix.stage }} - hdf5: ${{ matrix.hdf5 }} - - # if the previous step that tests the docker images passes then the images - # can be copied from the ghcr where they are saved using :ci_testing tags to - # :latest and :stable tags. - pushing_test_stable_img: - if: ${{ github.repository_owner == 'pyne' }} - needs: [BuildTest] - runs-on: ubuntu-latest - strategy: - matrix: - stage: [base_python, moab, dagmc, openmc] - hdf5: [''] - include: - - stage: dagmc - hdf5: _hdf5 - - name: "ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}: latest -> stable" - - steps: - - name: Log in to the Container registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} + build-args: build_hdf5=${{ matrix.hdf5_build_arg }}, pyne_test_base=${{ env.pyne_test_base }} - name: Push Image to stable img + if: github.repository_owner == 'pyne' uses: akhilerm/tag-push-action@v2.1.0 with: - src: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}:latest + src: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}${{ steps.multistage_build_and_test.outputs.testenv-tag }} dst: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}:stable + + + # # build HDF5 using multistage docker build action + # - uses: firehed/multistage-docker-build-action@v1 + # id: build_dagmc_with_hdf5 + # with: + # repository: ${{ env.DOCKER_IMAGE_BASENAME }}_hdf5 + # stages: base_python, moab + # server-stage: dagmc + # quiet: false + # tag-latest-on-default: false + # dockerfile: docker/ubuntu_22.04-dev.dockerfile + # build-args: build_hdf5=hdf5-1_12_0 + + # - name: Check event for DOCKER_IMAGE_TAG change + # if: github.event_name == 'pull_request' + # run: echo "DOCKER_IMAGE_TAG=:refs_heads_${GITHUB_HEAD_REF}-bk0" >> $GITHUB_ENV + + # - id: output_tag + # run: | + # echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT + + # # Downloads the images uploaded to ghcr in previous stages and runs pyne + # # tests to check that they work. + # BuildTest: + # needs: [multistage_image_build] + # runs-on: ubuntu-latest + + # strategy: + # matrix: + # stage: [base_python, moab, dagmc, openmc] + # hdf5: [''] + # include: + # - stage: dagmc + # hdf5: _hdf5 + # fail-fast: false + + # container: + # image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}${{ needs.multistage_image_build.outputs.image_tag }} + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 + + # - name: use BuildTest composite action + # uses: ./.github/actions/build-test + # with: + # stage: ${{ matrix.stage }} + # hdf5: ${{ matrix.hdf5 }} + + # # if the previous step that tests the docker images passes then the images + # # can be copied from the ghcr where they are saved using :ci_testing tags to + # # :latest and :stable tags. + # pushing_test_stable_img: + # if: ${{ github.repository_owner == 'pyne' }} + # needs: [BuildTest] + # runs-on: ubuntu-latest + # strategy: + # matrix: + # stage: [base_python, moab, dagmc, openmc] + # hdf5: [''] + # include: + # - stage: dagmc + # hdf5: _hdf5 + + # name: "ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}: latest -> stable" + + # steps: + # - name: Log in to the Container registry + # uses: docker/login-action@v2 + # with: + # registry: ghcr.io + # username: ${{ github.repository_owner }} + # password: ${{ secrets.GITHUB_TOKEN }} + + # - name: Check event for DOCKER_IMAGE_TAG change + # if: github.event_name == 'pull_request' + # run: echo "DOCKER_IMAGE_TAG=:refs_heads_${GITHUB_HEAD_REF}-bk0" >> $GITHUB_ENV + + # - name: Push Image to stable img + # uses: akhilerm/tag-push-action@v2.1.0 + # with: + # src: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}${{ env.DOCKER_IMAGE_TAG }} + # dst: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}:stable + + # - name: Push Image to latest img + # uses: akhilerm/tag-push-action@v2.1.0 + # with: + # src: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}${{ env.DOCKER_IMAGE_TAG }} + # dst: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}:latest diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 5be82adc57..f19dacca0b 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -14,10 +14,13 @@ on: env: VM_PASSWORD: temppwd DOCKER_IMAGE_BASENAME: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3 + DOCKER_IMAGE_TAG: :refs_heads_${{ github.ref_name }}-bk0 jobs: pyne_image_build: runs-on: ubuntu-latest + outputs: + image_tag: ${{ steps.output_tag.outputs.image_tag }} steps: - name: Checkout repository @@ -38,10 +41,14 @@ jobs: stages: base_python, moab, dagmc, openmc server-stage: pyne quiet: false - tag-latest-on-default: true + tag-latest-on-default: false dockerfile: docker/ubuntu_22.04-dev.dockerfile build-args: build_pyne=YES + - id: output_tag + run: | + echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT + pushing_test_stable_img: needs: [pyne_image_build] runs-on: ubuntu-latest @@ -56,9 +63,15 @@ jobs: - name: Push Image to stable img uses: akhilerm/tag-push-action@v2.1.0 with: - src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:latest + src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne${{ env.DOCKER_IMAGE_TAG }} dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:stable + - name: Push Image to latest img + uses: akhilerm/tag-push-action@v2.1.0 + with: + src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne${{ env.DOCKER_IMAGE_TAG }} + dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:latest + virtualbox_image_build: needs: [pushing_test_stable_img] runs-on: ubuntu-latest @@ -87,7 +100,7 @@ jobs: qemu-utils curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ - sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne:latest -p ${{ env.VM_PASSWORD }} -o pyne.vdi + sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne:latest -p ${{ env.VM_PASSWORD }} -o pyne.vdi - name: Upload VirtualBox image as artifact uses: actions/upload-artifact@v3 diff --git a/docker/ubuntu_22.04-dev.dockerfile b/docker/ubuntu_22.04-dev.dockerfile index a04c35614d..f239b627ac 100644 --- a/docker/ubuntu_22.04-dev.dockerfile +++ b/docker/ubuntu_22.04-dev.dockerfile @@ -1,5 +1,6 @@ ARG build_hdf5="NO" ARG build_pyne="NO" +ARG pyne_test_base=openmc ARG ubuntu_version=22.04 FROM ubuntu:${ubuntu_version} AS base_python @@ -133,7 +134,7 @@ RUN if [ "$build_hdf5" != "NO" ]; then \ && pip install . # Build/Install PyNE from develop branch -FROM openmc AS pyne-dev +FROM ${pyne_test_base} AS pyne-dev ARG build_hdf5 ARG build_pyne @@ -157,7 +158,7 @@ RUN if [ "$build_pyne" = "YES" ]; then \ && ./ci-run-tests.sh python3 # Build/Install PyNE from release branch -FROM openmc AS pyne +FROM ${pyne_test_base} AS pyne ARG build_hdf5 ARG build_pyne From a1b993129fc033c1392a0c9d5bb0962b9915090a Mon Sep 17 00:00:00 2001 From: bquan0 Date: Tue, 22 Aug 2023 14:03:29 -0500 Subject: [PATCH 42/54] put ARG pyne_test_base in front of stages that use it in FROM --- docker/ubuntu_22.04-dev.dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker/ubuntu_22.04-dev.dockerfile b/docker/ubuntu_22.04-dev.dockerfile index f239b627ac..46e4f1ff68 100644 --- a/docker/ubuntu_22.04-dev.dockerfile +++ b/docker/ubuntu_22.04-dev.dockerfile @@ -134,6 +134,7 @@ RUN if [ "$build_hdf5" != "NO" ]; then \ && pip install . # Build/Install PyNE from develop branch +ARG pyne_test_base FROM ${pyne_test_base} AS pyne-dev ARG build_hdf5 ARG build_pyne @@ -158,6 +159,7 @@ RUN if [ "$build_pyne" = "YES" ]; then \ && ./ci-run-tests.sh python3 # Build/Install PyNE from release branch +ARG pyne_test_base FROM ${pyne_test_base} AS pyne ARG build_hdf5 ARG build_pyne From 76c3abccfa1ac6a95ae06480bfe2e5712659cb80 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Tue, 22 Aug 2023 14:11:15 -0500 Subject: [PATCH 43/54] add parallel: true because it uses buildx --- .github/workflows/docker_publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index 8f96c742af..f18de50e09 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -62,6 +62,7 @@ jobs: server-stage: pyne quiet: false tag-latest-on-default: false + parallel: true dockerfile: docker/ubuntu_22.04-dev.dockerfile build-args: build_hdf5=${{ matrix.hdf5_build_arg }}, pyne_test_base=${{ env.pyne_test_base }} From 7c821f8adb3fefca66e2a2e3b56726b617653613 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Tue, 22 Aug 2023 15:21:04 -0500 Subject: [PATCH 44/54] remove parallel input, use ENV variable instead of ARG --- .github/workflows/docker_publish.yml | 1 - docker/ubuntu_22.04-dev.dockerfile | 7 +++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index f18de50e09..8f96c742af 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -62,7 +62,6 @@ jobs: server-stage: pyne quiet: false tag-latest-on-default: false - parallel: true dockerfile: docker/ubuntu_22.04-dev.dockerfile build-args: build_hdf5=${{ matrix.hdf5_build_arg }}, pyne_test_base=${{ env.pyne_test_base }} diff --git a/docker/ubuntu_22.04-dev.dockerfile b/docker/ubuntu_22.04-dev.dockerfile index 46e4f1ff68..8a797edf7d 100644 --- a/docker/ubuntu_22.04-dev.dockerfile +++ b/docker/ubuntu_22.04-dev.dockerfile @@ -1,6 +1,7 @@ ARG build_hdf5="NO" ARG build_pyne="NO" ARG pyne_test_base=openmc +ENV pyne_base=${pyne_test_base} ARG ubuntu_version=22.04 FROM ubuntu:${ubuntu_version} AS base_python @@ -134,8 +135,7 @@ RUN if [ "$build_hdf5" != "NO" ]; then \ && pip install . # Build/Install PyNE from develop branch -ARG pyne_test_base -FROM ${pyne_test_base} AS pyne-dev +FROM ${pyne_base} AS pyne-dev ARG build_hdf5 ARG build_pyne @@ -159,8 +159,7 @@ RUN if [ "$build_pyne" = "YES" ]; then \ && ./ci-run-tests.sh python3 # Build/Install PyNE from release branch -ARG pyne_test_base -FROM ${pyne_test_base} AS pyne +FROM ${pyne_base} AS pyne ARG build_hdf5 ARG build_pyne From 32d00fabbfc4f053b0e04fb45d219ce1c1854ff1 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Wed, 23 Aug 2023 10:33:20 -0500 Subject: [PATCH 45/54] apply changes suggested by gonuke in Slack --- .github/workflows/docker_publish.yml | 189 ++++++++++++--------------- docker/ubuntu_22.04-dev.dockerfile | 5 +- 2 files changed, 84 insertions(+), 110 deletions(-) diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index 8f96c742af..c903bfc3f9 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -16,9 +16,9 @@ on: env: DOCKER_IMAGE_BASENAME: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3 + USE_LATEST_TAG: false jobs: - # builds and pushes docker images of various stages to ghcr. # These docker images are also stored in ghcr and can be pulled # to be built upon by the subsequent stage. @@ -27,16 +27,6 @@ jobs: outputs: image_tag: ${{ steps.output_tag.outputs.image_tag }} - strategy: - matrix: - pyne_test_base: [base_python, moab, dagmc, openmc] - hdf5: [''] - hdf5_build_arg: [''] - include: - - stage: dagmc - hdf5: _hdf5 - hdf5_build_arg: hdf5-1_12_0 - fail-fast: false steps: - name: Checkout repository uses: actions/checkout@v3 @@ -48,115 +38,100 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - - name: modify DOCKER_IMAGE_BASENAME if _hdf5 will be built - if: matrix.hdf5 != '' - run: echo "DOCKER_IMAGE_BASENAME=${env.DOCKER_IMAGE_BASENAME}${matrix.hdf5}" >> $GITHUB_ENV + - name: Tag images with latest if on the main repo's develop branch + if: github.repository_owner == 'pyne' && github.ref_name == 'develop' + run: echo "USE_LATEST_TAG=true" >> $GITHUB_ENV # build base python, moab, dagmc, openmc using multistage docker build action - uses: firehed/multistage-docker-build-action@v1 - id: multistage_build_and_test + id: build_all_stages with: repository: ${{ env.DOCKER_IMAGE_BASENAME }} - stages: ${{ matrix.pyne_test_base }} - testenv-stage: ${{ matrix.pyne_test_base }} - server-stage: pyne + stages: base_python, moab, dagmc + server-stage: openmc quiet: false - tag-latest-on-default: false + parallel: true + tag-latest-on-default: ${{ env.USE_LATEST_TAG }} dockerfile: docker/ubuntu_22.04-dev.dockerfile - build-args: build_hdf5=${{ matrix.hdf5_build_arg }}, pyne_test_base=${{ env.pyne_test_base }} - - name: Push Image to stable img - if: github.repository_owner == 'pyne' - uses: akhilerm/tag-push-action@v2.1.0 + # build HDF5 using multistage docker build action + - uses: firehed/multistage-docker-build-action@v1 + id: build_dagmc_with_hdf5 with: - src: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}${{ steps.multistage_build_and_test.outputs.testenv-tag }} - dst: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}:stable - - - # # build HDF5 using multistage docker build action - # - uses: firehed/multistage-docker-build-action@v1 - # id: build_dagmc_with_hdf5 - # with: - # repository: ${{ env.DOCKER_IMAGE_BASENAME }}_hdf5 - # stages: base_python, moab - # server-stage: dagmc - # quiet: false - # tag-latest-on-default: false - # dockerfile: docker/ubuntu_22.04-dev.dockerfile - # build-args: build_hdf5=hdf5-1_12_0 - - # - name: Check event for DOCKER_IMAGE_TAG change - # if: github.event_name == 'pull_request' - # run: echo "DOCKER_IMAGE_TAG=:refs_heads_${GITHUB_HEAD_REF}-bk0" >> $GITHUB_ENV - - # - id: output_tag - # run: | - # echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT - - # # Downloads the images uploaded to ghcr in previous stages and runs pyne - # # tests to check that they work. - # BuildTest: - # needs: [multistage_image_build] - # runs-on: ubuntu-latest - - # strategy: - # matrix: - # stage: [base_python, moab, dagmc, openmc] - # hdf5: [''] - # include: - # - stage: dagmc - # hdf5: _hdf5 - # fail-fast: false + repository: ${{ env.DOCKER_IMAGE_BASENAME }}_hdf5 + stages: base_python, moab + server-stage: dagmc + quiet: false + parallel: true + tag-latest-on-default: ${{ env.USE_LATEST_TAG }} + dockerfile: docker/ubuntu_22.04-dev.dockerfile + build-args: build_hdf5=hdf5-1_12_0 - # container: - # image: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}${{ needs.multistage_image_build.outputs.image_tag }} - # steps: - # - name: Checkout repository - # uses: actions/checkout@v3 + # Downloads the images uploaded to ghcr in previous stages and runs pyne + # tests to check that they work. + BuildTest: + needs: [multistage_image_build] + runs-on: ubuntu-latest + + strategy: + matrix: + pyne_test_base: [base_python, moab, dagmc, openmc] + hdf5: [''] + hdf5_build_arg: [''] + include: + - stage: dagmc + hdf5: _hdf5 + hdf5_build_arg: hdf5-1_12_0 + fail-fast: false - # - name: use BuildTest composite action - # uses: ./.github/actions/build-test - # with: - # stage: ${{ matrix.stage }} - # hdf5: ${{ matrix.hdf5 }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Tag images with latest if on the main repo's develop branch + if: github.repository_owner == 'pyne' && github.ref_name == 'develop' + run: echo "USE_LATEST_TAG=true" >> $GITHUB_ENV - # # if the previous step that tests the docker images passes then the images - # # can be copied from the ghcr where they are saved using :ci_testing tags to - # # :latest and :stable tags. - # pushing_test_stable_img: - # if: ${{ github.repository_owner == 'pyne' }} - # needs: [BuildTest] - # runs-on: ubuntu-latest - # strategy: - # matrix: - # stage: [base_python, moab, dagmc, openmc] - # hdf5: [''] - # include: - # - stage: dagmc - # hdf5: _hdf5 + # build test stage and pyne-dev stage using multistage docker build action + - uses: firehed/multistage-docker-build-action@v1 + id: multistage_build_and_test + with: + repository: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }} + stages: ${{ matrix.pyne_test_base }} + server-stage: pyne-dev + quiet: false + parallel: true + tag-latest-on-default: ${{ env.USE_LATEST_TAG }} + dockerfile: docker/ubuntu_22.04-dev.dockerfile + build-args: build_hdf5=${{ matrix.hdf5_build_arg }}, pyne_test_base=${{ env.pyne_test_base }} - # name: "ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}: latest -> stable" + # if the previous step that tests the docker images passes then the images + # can be copied from the ghcr where they are saved using :ci_testing tags to + # :latest and :stable tags. + pushing_test_stable_img: + if: ${{ github.repository_owner == 'pyne' }} + needs: [BuildTest] + runs-on: ubuntu-latest + strategy: + matrix: + stage: [base_python, moab, dagmc, openmc] + hdf5: [''] + include: + - stage: dagmc + hdf5: _hdf5 - # steps: - # - name: Log in to the Container registry - # uses: docker/login-action@v2 - # with: - # registry: ghcr.io - # username: ${{ github.repository_owner }} - # password: ${{ secrets.GITHUB_TOKEN }} - - # - name: Check event for DOCKER_IMAGE_TAG change - # if: github.event_name == 'pull_request' - # run: echo "DOCKER_IMAGE_TAG=:refs_heads_${GITHUB_HEAD_REF}-bk0" >> $GITHUB_ENV + name: "ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3${{ matrix.hdf5 }}/${{ matrix.stage }}: latest -> stable" - # - name: Push Image to stable img - # uses: akhilerm/tag-push-action@v2.1.0 - # with: - # src: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}${{ env.DOCKER_IMAGE_TAG }} - # dst: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}:stable + steps: + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} - # - name: Push Image to latest img - # uses: akhilerm/tag-push-action@v2.1.0 - # with: - # src: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}${{ env.DOCKER_IMAGE_TAG }} - # dst: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}:latest + - name: Push Image to stable img + uses: akhilerm/tag-push-action@v2.1.0 + with: + src: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}:latest + dst: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }}/${{ matrix.stage }}:stable diff --git a/docker/ubuntu_22.04-dev.dockerfile b/docker/ubuntu_22.04-dev.dockerfile index 8a797edf7d..f239b627ac 100644 --- a/docker/ubuntu_22.04-dev.dockerfile +++ b/docker/ubuntu_22.04-dev.dockerfile @@ -1,7 +1,6 @@ ARG build_hdf5="NO" ARG build_pyne="NO" ARG pyne_test_base=openmc -ENV pyne_base=${pyne_test_base} ARG ubuntu_version=22.04 FROM ubuntu:${ubuntu_version} AS base_python @@ -135,7 +134,7 @@ RUN if [ "$build_hdf5" != "NO" ]; then \ && pip install . # Build/Install PyNE from develop branch -FROM ${pyne_base} AS pyne-dev +FROM ${pyne_test_base} AS pyne-dev ARG build_hdf5 ARG build_pyne @@ -159,7 +158,7 @@ RUN if [ "$build_pyne" = "YES" ]; then \ && ./ci-run-tests.sh python3 # Build/Install PyNE from release branch -FROM ${pyne_base} AS pyne +FROM ${pyne_test_base} AS pyne ARG build_hdf5 ARG build_pyne From 32e34a358061487a7d08981fa5c983c08865cd46 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Wed, 23 Aug 2023 10:54:56 -0500 Subject: [PATCH 46/54] fix very silly error of env.pyne_test_base and not matrix.pyne_test_base --- .github/workflows/docker_publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index c903bfc3f9..9a3e12674e 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -103,13 +103,13 @@ jobs: parallel: true tag-latest-on-default: ${{ env.USE_LATEST_TAG }} dockerfile: docker/ubuntu_22.04-dev.dockerfile - build-args: build_hdf5=${{ matrix.hdf5_build_arg }}, pyne_test_base=${{ env.pyne_test_base }} + build-args: build_hdf5=${{ matrix.hdf5_build_arg }}, pyne_test_base=${{ matrix.pyne_test_base }} # if the previous step that tests the docker images passes then the images # can be copied from the ghcr where they are saved using :ci_testing tags to # :latest and :stable tags. pushing_test_stable_img: - if: ${{ github.repository_owner == 'pyne' }} + if: github.repository_owner == 'pyne' && github.ref_name == 'develop' needs: [BuildTest] runs-on: ubuntu-latest strategy: From 921dc6edbf00dbd7999211c4905373b7f9aecd63 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Wed, 23 Aug 2023 11:05:32 -0500 Subject: [PATCH 47/54] change stage to pyne_test_base, make hdf5_build_arg default to NO --- .github/workflows/docker_publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index 9a3e12674e..8b394f28ea 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -77,9 +77,9 @@ jobs: matrix: pyne_test_base: [base_python, moab, dagmc, openmc] hdf5: [''] - hdf5_build_arg: [''] + hdf5_build_arg: ['NO'] include: - - stage: dagmc + - pyne_test_base: dagmc hdf5: _hdf5 hdf5_build_arg: hdf5-1_12_0 fail-fast: false From f7ed9025fa78dc88b5374da261c2227d25a476e8 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Wed, 23 Aug 2023 11:11:18 -0500 Subject: [PATCH 48/54] DON'T forget to log into ghcr.io --- .github/workflows/docker_publish.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index 8b394f28ea..9d918fb57f 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -87,6 +87,13 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v3 + + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Tag images with latest if on the main repo's develop branch if: github.repository_owner == 'pyne' && github.ref_name == 'develop' From aad5ada3a25a673ef75df0d71a44fbbca3bafbf1 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Wed, 23 Aug 2023 11:23:41 -0500 Subject: [PATCH 49/54] add build_pyne arg to multistage action --- .github/workflows/docker_publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index 9d918fb57f..bb6089d2b3 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -110,7 +110,7 @@ jobs: parallel: true tag-latest-on-default: ${{ env.USE_LATEST_TAG }} dockerfile: docker/ubuntu_22.04-dev.dockerfile - build-args: build_hdf5=${{ matrix.hdf5_build_arg }}, pyne_test_base=${{ matrix.pyne_test_base }} + build-args: build_hdf5=${{ matrix.hdf5_build_arg }}, pyne_test_base=${{ matrix.pyne_test_base }}, build_pyne=YES # if the previous step that tests the docker images passes then the images # can be copied from the ghcr where they are saved using :ci_testing tags to From d65f08b7a36410445a4d813c352a3bcdde2e28cb Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 25 Aug 2023 20:22:49 -0500 Subject: [PATCH 50/54] matrix the multistage build job and use build-args to make BuildTest job take the cached images, matrix the update virtualbox_image.yml, remove build_pyne arg and if statements, add args for MOAB and DAGMC --- .github/workflows/docker_publish.yml | 28 ++++++++++---------------- .github/workflows/virtualbox_image.yml | 18 ++++------------- docker/ubuntu_22.04-dev.dockerfile | 23 +++++++++------------ 3 files changed, 24 insertions(+), 45 deletions(-) diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml index bb6089d2b3..526e2c83b3 100644 --- a/.github/workflows/docker_publish.yml +++ b/.github/workflows/docker_publish.yml @@ -24,8 +24,14 @@ jobs: # to be built upon by the subsequent stage. multistage_image_build: runs-on: ubuntu-latest - outputs: - image_tag: ${{ steps.output_tag.outputs.image_tag }} + strategy: + matrix: + hdf5: [''] + hdf5_build_arg: ['NO'] + include: + - hdf5: _hdf5 + hdf5_build_arg: hdf5-1_12_0 + fail-fast: false steps: - name: Checkout repository @@ -46,26 +52,14 @@ jobs: - uses: firehed/multistage-docker-build-action@v1 id: build_all_stages with: - repository: ${{ env.DOCKER_IMAGE_BASENAME }} + repository: ${{ env.DOCKER_IMAGE_BASENAME }}${{ matrix.hdf5 }} stages: base_python, moab, dagmc server-stage: openmc quiet: false parallel: true tag-latest-on-default: ${{ env.USE_LATEST_TAG }} dockerfile: docker/ubuntu_22.04-dev.dockerfile - - # build HDF5 using multistage docker build action - - uses: firehed/multistage-docker-build-action@v1 - id: build_dagmc_with_hdf5 - with: - repository: ${{ env.DOCKER_IMAGE_BASENAME }}_hdf5 - stages: base_python, moab - server-stage: dagmc - quiet: false - parallel: true - tag-latest-on-default: ${{ env.USE_LATEST_TAG }} - dockerfile: docker/ubuntu_22.04-dev.dockerfile - build-args: build_hdf5=hdf5-1_12_0 + build-args: build_hdf5=${{ matrix.hdf5_build_arg }}, pyne_test_base=openmc # Downloads the images uploaded to ghcr in previous stages and runs pyne # tests to check that they work. @@ -110,7 +104,7 @@ jobs: parallel: true tag-latest-on-default: ${{ env.USE_LATEST_TAG }} dockerfile: docker/ubuntu_22.04-dev.dockerfile - build-args: build_hdf5=${{ matrix.hdf5_build_arg }}, pyne_test_base=${{ matrix.pyne_test_base }}, build_pyne=YES + build-args: build_hdf5=${{ matrix.hdf5_build_arg }}, pyne_test_base=${{ matrix.pyne_test_base }} # if the previous step that tests the docker images passes then the images # can be copied from the ghcr where they are saved using :ci_testing tags to diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index f19dacca0b..95f77b676d 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -14,7 +14,7 @@ on: env: VM_PASSWORD: temppwd DOCKER_IMAGE_BASENAME: ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3 - DOCKER_IMAGE_TAG: :refs_heads_${{ github.ref_name }}-bk0 + jobs: pyne_image_build: @@ -33,21 +33,17 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} + # before merging, change tag-latest-on-default to true - name: Build PyNE docker image uses: firehed/multistage-docker-build-action@v1 id: build_pyne with: repository: ${{ env.DOCKER_IMAGE_BASENAME }} - stages: base_python, moab, dagmc, openmc + stages: openmc server-stage: pyne quiet: false tag-latest-on-default: false dockerfile: docker/ubuntu_22.04-dev.dockerfile - build-args: build_pyne=YES - - - id: output_tag - run: | - echo "image_tag=$DOCKER_IMAGE_TAG" >> $GITHUB_OUTPUT pushing_test_stable_img: needs: [pyne_image_build] @@ -63,15 +59,9 @@ jobs: - name: Push Image to stable img uses: akhilerm/tag-push-action@v2.1.0 with: - src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne${{ env.DOCKER_IMAGE_TAG }} + src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:latest dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:stable - - name: Push Image to latest img - uses: akhilerm/tag-push-action@v2.1.0 - with: - src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne${{ env.DOCKER_IMAGE_TAG }} - dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:latest - virtualbox_image_build: needs: [pushing_test_stable_img] runs-on: ubuntu-latest diff --git a/docker/ubuntu_22.04-dev.dockerfile b/docker/ubuntu_22.04-dev.dockerfile index f239b627ac..06bab3845e 100644 --- a/docker/ubuntu_22.04-dev.dockerfile +++ b/docker/ubuntu_22.04-dev.dockerfile @@ -1,5 +1,4 @@ ARG build_hdf5="NO" -ARG build_pyne="NO" ARG pyne_test_base=openmc ARG ubuntu_version=22.04 @@ -100,6 +99,7 @@ RUN export MOAB_HDF5_ARGS=""; \ # put MOAB on the path ENV LD_LIBRARY_PATH $HOME/opt/moab/lib:$LD_LIBRARY_PATH ENV LIBRARY_PATH $HOME/opt/moab/lib:$LIBRARY_PATH +ENV PYNE_MOAB_ARGS "--moab $HOME/opt/moab" FROM moab AS dagmc # build/install DAGMC @@ -121,6 +121,7 @@ RUN cd /root \ && make install \ && cd ../.. \ && rm -rf DAGMC +ENV PYNE_DAGMC_ARGS "--dagmc $HOME/opt/dagmc" FROM dagmc AS openmc ARG build_hdf5 @@ -136,7 +137,6 @@ RUN if [ "$build_hdf5" != "NO" ]; then \ # Build/Install PyNE from develop branch FROM ${pyne_test_base} AS pyne-dev ARG build_hdf5 -ARG build_pyne RUN export PYNE_HDF5_ARGS="" ;\ if [ "$build_hdf5" != "NO" ]; then \ @@ -146,21 +146,18 @@ RUN export PYNE_HDF5_ARGS="" ;\ && git clone -b develop --single-branch https://github.com/pyne/pyne.git \ && cd pyne \ && python setup.py install --user \ - --moab $HOME/opt/moab --dagmc $HOME/opt/dagmc \ + $PYNE_MOAB_ARGS $PYNE_DAGMC_ARGS \ $PYNE_HDF5_ARGS \ --clean -j 3; ENV PATH $HOME/.local/bin:$PATH -RUN if [ "$build_pyne" = "YES" ]; then \ - cd $HOME \ - && nuc_data_make ; \ - fi \ +RUN cd $HOME \ + && nuc_data_make ; \ && cd $HOME/opt/pyne/tests \ && ./ci-run-tests.sh python3 # Build/Install PyNE from release branch FROM ${pyne_test_base} AS pyne ARG build_hdf5 -ARG build_pyne RUN export PYNE_HDF5_ARGS="" ;\ if [ "$build_hdf5" != "NO" ]; then \ @@ -169,13 +166,11 @@ RUN export PYNE_HDF5_ARGS="" ;\ COPY . $HOME/opt/pyne RUN cd $HOME/opt/pyne \ && python setup.py install --user \ - --moab $HOME/opt/moab --dagmc $HOME/opt/dagmc \ + $PYNE_MOAB_ARGS $PYNE_DAGMC_ARGS \ $PYNE_HDF5_ARGS \ --clean -j 3; ENV PATH $HOME/.local/bin:$PATH -RUN if [ "$build_pyne" = "YES" ]; then \ - cd $HOME \ - && nuc_data_make ; \ - fi \ +RUN cd $HOME \ + && nuc_data_make ; \ && cd $HOME/opt/pyne/tests \ - && ./ci-run-tests.sh python3 \ No newline at end of file + && ./ci-run-tests.sh python3 From d6fc97b34db5de045bb6e6b661f6dcd0177996d1 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Fri, 25 Aug 2023 20:32:25 -0500 Subject: [PATCH 51/54] remove semicolon after nuc_data_make (leftover from if statement) --- docker/ubuntu_22.04-dev.dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/ubuntu_22.04-dev.dockerfile b/docker/ubuntu_22.04-dev.dockerfile index 06bab3845e..12a097606f 100644 --- a/docker/ubuntu_22.04-dev.dockerfile +++ b/docker/ubuntu_22.04-dev.dockerfile @@ -151,7 +151,7 @@ RUN export PYNE_HDF5_ARGS="" ;\ --clean -j 3; ENV PATH $HOME/.local/bin:$PATH RUN cd $HOME \ - && nuc_data_make ; \ + && nuc_data_make \ && cd $HOME/opt/pyne/tests \ && ./ci-run-tests.sh python3 @@ -171,6 +171,6 @@ RUN cd $HOME/opt/pyne \ --clean -j 3; ENV PATH $HOME/.local/bin:$PATH RUN cd $HOME \ - && nuc_data_make ; \ + && nuc_data_make \ && cd $HOME/opt/pyne/tests \ && ./ci-run-tests.sh python3 From 0bbdc40d548c980e413255e4dc58875a1df14160 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Wed, 30 Aug 2023 09:29:14 -0500 Subject: [PATCH 52/54] remove leftover tag code, prepare virtualbox_image.yml for running only on release, add release name to image tag and VM name --- .github/workflows/virtualbox_image.yml | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 95f77b676d..46ebe9ce11 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -6,10 +6,6 @@ on: release: types: - published - push: - paths: - - 'docker/*' - - '.github/workflows/virtualbox_image.yml' env: VM_PASSWORD: temppwd @@ -19,8 +15,6 @@ env: jobs: pyne_image_build: runs-on: ubuntu-latest - outputs: - image_tag: ${{ steps.output_tag.outputs.image_tag }} steps: - name: Checkout repository @@ -42,7 +36,7 @@ jobs: stages: openmc server-stage: pyne quiet: false - tag-latest-on-default: false + tag-latest-on-default: true dockerfile: docker/ubuntu_22.04-dev.dockerfile pushing_test_stable_img: @@ -60,7 +54,7 @@ jobs: uses: akhilerm/tag-push-action@v2.1.0 with: src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:latest - dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:stable + dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:stable_${{ github.ref }} virtualbox_image_build: needs: [pushing_test_stable_img] @@ -90,7 +84,7 @@ jobs: qemu-utils curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ - sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne:latest -p ${{ env.VM_PASSWORD }} -o pyne.vdi + sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne:stable_${{ github.ref }} -p ${{ env.VM_PASSWORD }} -o pyne_${{ github.ref }}.vdi - name: Upload VirtualBox image as artifact uses: actions/upload-artifact@v3 From 0a0c77d700111b26f0512412dd68a99cef2c2419 Mon Sep 17 00:00:00 2001 From: bquan0 Date: Wed, 30 Aug 2023 16:14:22 -0500 Subject: [PATCH 53/54] update path: for uploading VM, push latest to both stable and release tag --- .github/workflows/virtualbox_image.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 46ebe9ce11..551c581817 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -54,7 +54,13 @@ jobs: uses: akhilerm/tag-push-action@v2.1.0 with: src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:latest - dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:stable_${{ github.ref }} + dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:stable + + - name: Push Image to release tag img + uses: akhilerm/tag-push-action@v2.1.0 + with: + src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:latest + dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:${{ github.ref }} virtualbox_image_build: needs: [pushing_test_stable_img] @@ -90,5 +96,5 @@ jobs: uses: actions/upload-artifact@v3 with: name: virtualbox_image - path: pyne.vdi + path: pyne_${{ github.ref }}.vdi \ No newline at end of file From 8831e098dd392977e9cdacc4c40fd488d0920e7f Mon Sep 17 00:00:00 2001 From: bquan0 Date: Thu, 31 Aug 2023 10:15:40 -0500 Subject: [PATCH 54/54] change release: types: to created and edited, change ref to ref_name --- .github/workflows/virtualbox_image.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/virtualbox_image.yml b/.github/workflows/virtualbox_image.yml index 551c581817..73a4980cf3 100644 --- a/.github/workflows/virtualbox_image.yml +++ b/.github/workflows/virtualbox_image.yml @@ -5,7 +5,8 @@ on: workflow_dispatch: release: types: - - published + - created + - edited env: VM_PASSWORD: temppwd @@ -60,7 +61,7 @@ jobs: uses: akhilerm/tag-push-action@v2.1.0 with: src: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:latest - dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:${{ github.ref }} + dst: ${{ env.DOCKER_IMAGE_BASENAME }}/pyne:${{ github.ref_name }} virtualbox_image_build: needs: [pushing_test_stable_img] @@ -90,11 +91,11 @@ jobs: qemu-utils curl -sL "https://github.com/linka-cloud/d2vm/releases/download/v0.2.0/d2vm_v0.2.0_linux_amd64.tar.gz" | tar -xvz d2vm sudo mv d2vm /usr/local/bin/ - sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne:stable_${{ github.ref }} -p ${{ env.VM_PASSWORD }} -o pyne_${{ github.ref }}.vdi + sudo d2vm convert ghcr.io/${{ github.repository_owner }}/pyne_ubuntu_22.04_py3/pyne:stable_${{ github.ref_name }} -p ${{ env.VM_PASSWORD }} -o pyne_${{ github.ref_name }}.vdi - name: Upload VirtualBox image as artifact uses: actions/upload-artifact@v3 with: name: virtualbox_image - path: pyne_${{ github.ref }}.vdi + path: pyne_${{ github.ref_name }}.vdi \ No newline at end of file