Clean up AM image template variables #79
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Archivematica Vagrant box | |
on: | |
push: | |
branches: | |
- "dev/add-24.04-vagrant-base-image" | |
jobs: | |
build-base-image: | |
name: Build base image | |
runs-on: ubuntu-24.04 | |
env: | |
PACKER_CACHE_DIR: ${{ github.workspace }}/.packer_cache | |
PACKER_LOG: TRACE | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: "Install packer and VirtualBox" | |
run: | | |
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg | |
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list | |
wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg --dearmor | |
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list | |
sudo apt update && sudo apt install packer virtualbox-7.1 | |
- name: Set the user environment as VirtualBox expects it | |
run: | | |
echo "USER=$USER" >> $GITHUB_ENV | |
echo "LOGNAME=$USER" >> $GITHUB_ENV | |
- name: Build | |
run: | | |
cd ${{ github.workspace }}/packer/templates/vagrant-base-ubuntu-20.04-amd64 | |
packer init template.json.pkr.hcl | |
packer build -on-error=abort template.json.pkr.hcl | |
- name: Upload base image | |
uses: actions/upload-artifact@v4 | |
with: | |
name: base-image | |
path: "${{ github.workspace }}/packer/builds/virtualbox/vagrant-base-ubuntu-20.04-amd64" | |
vagrant-box-archivematica: | |
name: Build and upload box image | |
runs-on: ubuntu-24.04 | |
needs: ["build-base-image"] | |
env: | |
PACKER_CACHE_DIR: ${{ github.workspace }}/.packer_cache | |
PACKER_LOG: TRACE | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Restore base image | |
uses: actions/download-artifact@v4 | |
with: | |
name: base-image | |
path: "${{ github.workspace }}/packer/builds/virtualbox/vagrant-base-ubuntu-20.04-amd64" | |
- name: "Install packer, vagrant and VirtualBox" | |
run: | | |
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg | |
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list | |
wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg --dearmor | |
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list | |
sudo apt update && sudo apt install packer vagrant virtualbox-7.1 | |
- name: Set the user environment as VirtualBox expects it | |
run: | | |
echo "USER=$USER" >> $GITHUB_ENV | |
echo "LOGNAME=$USER" >> $GITHUB_ENV | |
- name: Update vbox networks | |
run: | | |
sudo mkdir -p /etc/vbox/ | |
echo "* 10.10.10.20/24" | sudo tee -a /etc/vbox/networks.conf | |
- name: Build | |
run: | | |
cd ${{ github.workspace }}/packer/templates/vagrant-box-archivematica | |
packer init template.json.pkr.hcl | |
packer build -on-error=abort template.json.pkr.hcl | |
mv ${{ github.workspace }}/packer/builds/virtualbox/vagrant-am.box \ | |
${{ github.workspace }}/archivematica-vagrant-v1.17.0.box | |
- name: Provision a test VM with the new image | |
run: | | |
vagrant init --minimal --no-tty archivematica-vagrant-v1.17.0 file://${{ github.workspace }}/archivematica-vagrant-v1.17.0.box | |
cat Vagrantfile | |
vagrant up --debug-timestamp --provider virtualbox | |
- name: Test AM is running in the test VM | |
run: | | |
sleep 180 | |
test $( \ | |
curl \ | |
--silent \ | |
--header 'Authorization: ApiKey admin:this_is_the_am_api_key' \ | |
--header 'Content-Type: application/json' \ | |
'http://10.10.10.20/api/processing-configuration/' \ | |
| jq -r '.processing_configurations == ["automated", "default"]' \ | |
) == true | |
test $( \ | |
curl \ | |
--silent \ | |
--header 'Authorization: ApiKey admin:this_is_the_ss_api_key' \ | |
--header 'Content-Type: application/json' \ | |
'http://10.10.10.20:8000/api/v2/pipeline/' \ | |
| jq -r '.meta.total_count == 1' \ | |
) == true |