Skip to content

Commit

Permalink
Setup and start self-hosted EC2 runner AlmaLinux#18
Browse files Browse the repository at this point in the history
  • Loading branch information
yuravk committed Jun 7, 2024
1 parent cbcef86 commit e04b8c8
Showing 1 changed file with 22 additions and 166 deletions.
188 changes: 22 additions & 166 deletions .github/workflows/almalinux-compose-test-arm64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,57 +23,14 @@ on:

jobs:

# start-runner:
# name: Setup and start self-hosted EC2 runner
# runs-on: ubuntu-latest
# steps:
# - name: Configure AWS credentials
# uses: aws-actions/configure-aws-credentials@v4
# with:
# aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
# aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# aws-region: ${{ secrets.AWS_REGION }}

# - name: Start EC2 runner
# id: start-ec2-runner
# uses: bitovi/[email protected]
# with:
# aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
# aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# aws_default_region: ${{ secrets.AWS_REGION }}
# aws_ec2_additional_tags: '{\"github-actions\":\"ssh-access\"}'

# aws_ec2_instance_type: t4g.small
# aws_ec2_ami_id: ${{ inputs.version_major == '9' && 'ami-0ce12a8fbc3cc15a5' || 'ami-01e3e647c7acbc64b' }}
# # aws_ec2_security_group_name: sg-07e22182e33675edc
# # aws_vpc_subnet_id: subnet-64063c29
# aws_vpc_create: false
# aws_ec2_instance_public_ip: true

# # ec2_instance_public_ip: false
# # ec2_additional_tags: '{\"key3\":\"value3\",\"key4\":\"value4\"}'

# repo_url: https://github.com/yuravk/compose-tests
# repo_access_token: AAL376ZHV6H5WYSS7NLLWFTGMBSKY

# # stack_destroy: false
# # tf_state_bucket_destroy: true

start-runner:
timeout-minutes: 5 # normally it only takes 1-2 minutes
timeout-minutes: 10 # normally it only takes 1-2 minutes
name: Setup and start self-hosted EC2 runner
runs-on: ubuntu-latest
permissions:
actions: write
steps:
# - name: Configure AWS credentials
# uses: aws-actions/configure-aws-credentials@v4
# with:
# aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
# aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# aws-region: ${{ secrets.AWS_REGION }}

- name: Start EC2 runner
- name: Setup and start self-hosted EC2 runner
id: start-ec2-runner
uses: NextChapterSoftware/[email protected]
with:
Expand All @@ -92,37 +49,9 @@ jobs:
[
{"Key": "compose-tests", "Value": "${{ github.actor }}"}
]
# start-runner:
# name: Start self-hosted EC2 runner
# runs-on: ubuntu-latest
# outputs:
# label: ${{ steps.start-ec2-runner.outputs.label }}
# ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }}
# steps:
# - name: Configure AWS credentials
# uses: aws-actions/configure-aws-credentials@v4
# with:
# aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
# aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# aws-region: ${{ secrets.AWS_REGION }}

# - name: Start EC2 runner
# id: start-ec2-runner
# uses: machulav/ec2-github-runner@v2
# with:
# mode: start
# github-token: ${{ secrets.GIT_HUB_TOKEN }}
# ec2-image-id: ${{ inputs.version_major == '9' && 'ami-0f76592d493cc4dbb' || 'ami-0b68c0cf818f25ecf' }}
# ec2-instance-type: t4g.small
# subnet-id: subnet-64063c29
# security-group-id: sg-07e22182e33675edc
compose-test:
name: Testing AlmaLinux ${{ inputs.version_major }}
# runs-on: almalinux${{ inputs.version_major }}-arm64-aws-ec2-us-east-1
# runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner
runs-on: ${{ github.run_id }}
needs: start-runner # required to start the main job when the runner is ready

Expand All @@ -142,54 +71,16 @@ jobs:
fi
echo "dnf_crb_repo=${dnf_crb_repo}" >> $GITHUB_ENV
# # Clean up tmt run results and repos
# sudo rm -rf /var/tmp/tmt/run-* \
# /etc/yum.repos.d/almalinux-pungi.repo \
# /etc/yum.repos.d/almalinux-pulp.repo
# # Verify that CPU supports hardware virtualization
# echo -n "Number of vmx|svm CPUs: " && grep -E -c '(vmx|svm)' /proc/cpuinfo
# # Use proper Vagrantfile and set ENV variable of config.vm.box
# cp -av ci/Vagrant/Vagrantfile ./
# echo vm_box='almalinux/${{ inputs.version_major }}' > .env
# - name: Install KVM Packages and Start libvirt
# run: |
# sudo apt-get -y update
# sudo apt-get -y install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
# sudo systemctl enable --now libvirtd
# sudo adduser "$(id -un)" libvirt
# sudo adduser "$(id -un)" kvm
# TMT tests run directory
echo "tmt_run_dir=/var/tmp/tmt/run-001" >> $GITHUB_ENV
# - name: Enable KVM group perms
# run: |
# echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
# sudo udevadm control --reload-rules
# sudo udevadm trigger --name-match=kvm

# - name: Tune libvirt
# run: virsh list --all

# - name: Install Vagrant
# run: |
# sudo apt-get -y install vagrant
# sudo vagrant --version
# sudo vagrant plugin install vagrant-reload
# sudo vagrant plugin install vagrant-env

# - name: Install the Vagrant libvirt Plugin
# run: |
# sudo cp /etc/apt/sources.list /etc/apt/sources.list."$(date +"%F")"
# sudo sed -i -e '/^# deb-src.*universe$/s/# //g' /etc/apt/sources.list
# sudo apt-get -y update
# sudo apt-get -y install nfs-kernel-server
# sudo systemctl enable --now nfs-server
# sudo apt-get -y build-dep vagrant ruby-libvirt
# sudo apt-get -y install ebtables dnsmasq-base
# sudo apt-get -y install libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-dev
# sudo vagrant plugin install vagrant-libvirt
# sudo vagrant plugin install vagrant-scp
# Fail tasts if both pungi and pulp repositories are used
if [ "x${{ inputs.pungi_repository }}" = "xtrue" -a "x${{ inputs.pulp_repository }}" = "xtrue" ]; then
echo "[Debug]"
echo "Both pungi and pulp repositories can't be used."
exit 1
fi
exit 0
- name: Create AlmaLinux pungi repository
if: inputs.pungi_repository
Expand Down Expand Up @@ -231,9 +122,6 @@ jobs:
name = almalinux-${{ inputs.version_major }}-${{ env.dnf_crb_repo }}-pulp
EOF
# - name: Run vagrant up
# run: sudo vagrant up almalinux

- name: Update the system
run: |
sudo dnf -y clean all
Expand All @@ -247,29 +135,30 @@ jobs:
enable_repo=${{ env.dnf_crb_repo }}
sudo dnf install -y --enablerepo=${enable_repo,,} tmt
# - name: Get compose-tests
# run: sudo vagrant ssh almalinux -c 'sudo cp -a /vagrant /compose-tests'

- name: Run tests
run: sudo sh -c 'export pungi_repository=${{ inputs.pungi_repository }}; export pulp_repository=${{ inputs.pulp_repository }}; tmt -vvv -c distro=centos-stream-${{ inputs.version_major }} run --all provision --how=local test --name "/tests/legacy/p_cpio"'

- name: Print tests results
if: success() || failure()
run: |
sudo cat /var/tmp/tmt/run-001/plans/legacy/execute/results.yaml /var/tmp/tmt/run-001/plans/ng/execute/results.yaml
sudo /bin/cp -av /var/tmp/tmt/run-001/plans/legacy/execute/results.yaml ${{github.action_path}}/legacy.results.yaml
sudo /bin/cp -av /var/tmp/tmt/run-001/plans/ng/execute/results.yaml ${{github.action_path}}/ng.results.yaml
#[Debug]
sudo cat ${{ env.tmt_run_dir }}/plans/legacy/execute/results.yaml ${{ env.tmt_run_dir }}/plans/ng/execute/results.yaml
sudo /bin/cp -av ${{ env.tmt_run_dir }}/plans/legacy/execute/results.yaml ${{github.action_path}}/legacy.results.yaml
sudo /bin/cp -av ${{ env.tmt_run_dir }}/plans/ng/execute/results.yaml ${{github.action_path}}/ng.results.yaml
- name: Print tests log
if: success() || failure()
run: |
sudo cat /var/tmp/tmt/run-001/log.txt
sudo /bin/cp -av /var/tmp/tmt/run-001/log.txt ${{github.action_path}}/log.txt
#[Debug]
sudo cat ${{ env.tmt_run_dir }}/log.txt
sudo /bin/cp -av ${{ env.tmt_run_dir }}/log.txt ${{github.action_path}}/log.txt
- name: Collect tests output
if: success() || failure()
run: |
cd /var/tmp/tmt/run-001/
cd ${{ env.tmt_run_dir }}/
tar cf ${{github.action_path}}/output.tar $( find . -name output.txt ) || true
- uses: actions/upload-artifact@v4
Expand All @@ -288,37 +177,4 @@ jobs:
if: success() || failure()
with:
name: Tests output
path: ${{github.action_path}}/output.tar

# - name: Clean up tmt run results and repos
# if: success() || failure()
# run: |
# sudo rm -rf /var/tmp/tmt/run-* \
# ${{github.action_path}}/output.tar \
# ${{github.action_path}}/*.results.yaml \
# ${{github.action_path}}/log.txt \
# /etc/yum.repos.d/almalinux-pungi.repo \
# /etc/yum.repos.d/almalinux-pulp.repo

# stop-runner:
# name: Stop self-hosted EC2 runner
# needs:
# - start-runner # required to get output from the start-runner job
# - compose-test # required to wait when the main job is done
# runs-on: ubuntu-latest
# if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs
# steps:
# - name: Configure AWS credentials
# uses: aws-actions/configure-aws-credentials@v4
# with:
# aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
# aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# aws-region: ${{ secrets.AWS_REGION }}

# - name: Stop EC2 runner
# uses: machulav/ec2-github-runner@v2
# with:
# mode: stop
# github-token: ${{ secrets.GIT_HUB_TOKEN }}
# label: ${{ needs.start-runner.outputs.label }}
# ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }}
path: ${{github.action_path}}/output.tar

0 comments on commit e04b8c8

Please sign in to comment.