--- name: Build/Push Development Images env: LC_ALL: "C.UTF-8" # prevent ERROR: Ansible could not initialize the preferred locale: unsupported locale setting DOCKER_CACHE: "--no-cache" # using the cache will not rebuild git requirements and other things on: workflow_dispatch: push: branches: - devel - release_* - feature_* jobs: push-development-images: runs-on: ubuntu-latest timeout-minutes: 120 permissions: packages: write contents: read strategy: fail-fast: false matrix: build-targets: - image-name: awx_devel make-target: docker-compose-buildx - image-name: awx_kube_devel make-target: awx-kube-dev-buildx - image-name: awx make-target: awx-kube-buildx steps: - name: Skipping build of awx image for non-awx repository run: | echo "Skipping build of awx image for non-awx repository" exit 0 if: matrix.build-targets.image-name == 'awx' && !endsWith(github.repository, '/awx') - uses: actions/checkout@v4 with: show-progress: false - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Set GITHUB_ENV variables run: | echo "DEV_DOCKER_TAG_BASE=ghcr.io/${OWNER,,}" >> $GITHUB_ENV echo "COMPOSE_TAG=${GITHUB_REF##*/}" >> $GITHUB_ENV echo py_version=`make PYTHON_VERSION` >> $GITHUB_ENV env: OWNER: '${{ github.repository_owner }}' - name: Install python ${{ env.py_version }} uses: actions/setup-python@v4 with: python-version: ${{ env.py_version }} - name: Log in to registry run: | echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Setup node and npm for the new UI build uses: actions/setup-node@v2 with: node-version: '18' if: matrix.build-targets.image-name == 'awx' - name: Prebuild new UI for awx image (to speed up build process) run: | make ui if: matrix.build-targets.image-name == 'awx' - name: Generate placeholder SSH private key if SSH auth for private repos is not needed id: generate_key shell: bash run: | if [[ -z "${{ secrets.PRIVATE_GITHUB_KEY }}" ]]; then ssh-keygen -t ed25519 -C "github-actions" -N "" -f ~/.ssh/id_ed25519 echo "SSH_PRIVATE_KEY<> $GITHUB_OUTPUT cat ~/.ssh/id_ed25519 >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT else echo "SSH_PRIVATE_KEY<> $GITHUB_OUTPUT echo "${{ secrets.PRIVATE_GITHUB_KEY }}" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT fi - name: Add private GitHub key to SSH agent uses: webfactory/ssh-agent@v0.9.0 with: ssh-private-key: ${{ steps.generate_key.outputs.SSH_PRIVATE_KEY }} - name: Build and push AWX devel images run: | make ${{ matrix.build-targets.make-target }}