[argocd-helmfile-v0171] update #2191
Workflow file for this run
This file contains hidden or 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: Integration | |
| on: | |
| pull_request: | |
| types: | |
| - opened | |
| - closed | |
| - reopened | |
| - synchronize | |
| workflow_dispatch: | |
| jobs: | |
| test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - runner: ubuntu-latest | |
| platform: linux/amd64 | |
| - runner: ubuntu-24.04-arm | |
| platform: linux/arm64 | |
| runs-on: ${{ matrix.runner }} | |
| steps: | |
| - name: Set environment variables | |
| run: | | |
| # TODO: Delete it once you have completed the migration from CircleCI. | |
| echo "CIRCLE_BUILD_URL=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_ENV | |
| echo "GITHUB_JOB_URL=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_ENV | |
| echo "CHATWORK_API_TOKEN=${{ secrets.CHATWORK_API_TOKEN }}" >> $GITHUB_ENV | |
| echo "CHATWORK_NOTIFICATION_ROOM_ID=${{ secrets.CHATWORK_NOTIFICATION_ROOM_ID }}" >> $GITHUB_ENV | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| fetch-depth: 0 | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0 | |
| with: | |
| username: ${{ secrets.CW_DOCKER_HUB_USERNAME }} | |
| password: ${{ secrets.CW_DOCKER_HUB_TOKEN }} | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 | |
| with: | |
| image: tonistiigi/binfmt:qemu-v7.0.0-28 | |
| platforms: linux/amd64,linux/arm64 | |
| - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 | |
| # TODO: Replace docker-compose in each Makefile and then delete it. | |
| - name: Add docker-compose | |
| run: | | |
| mkdir -p /home/runner/.local/bin | |
| cat << EOT >> /home/runner/.local/bin/docker-compose | |
| #!/bin/bash | |
| docker compose "\$@" | |
| EOT | |
| chmod +x /home/runner/.local/bin/docker-compose | |
| - run: make ci:diff | |
| - run: | | |
| ARCH=`make arch` | |
| EXTENSION=`make extension` | |
| echo ARCH: "${ARCH}" | |
| echo EXTENSION: "${EXTENSION}" | |
| make ci:diff | while read DIR; do | |
| cd ${GITHUB_WORKSPACE}/${DIR} | |
| if find . -type l -o -type f -name "Dockerfile${EXTENSION}" | grep Dockerfile ; then | |
| make build; | |
| make test; | |
| else | |
| echo "${DIR} is ${ARCH} not supported. make build & make test was skipped."; | |
| fi | |
| done | |
| - name: Notification failed | |
| if: failure() && github.actor == 'cw-circleci' | |
| run: | | |
| make ci:notify -e TITLE="Github Actions: Failed to CI of PR created by automatic update of dependency (devil) arch: $(make arch)" \ | |
| -e BODY="${{ github.event.pull_request.html_url }}" | |
| push: | |
| if: github.ref_name == 'master' | |
| needs: test | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - runner: ubuntu-latest | |
| platform: linux/amd64 | |
| - runner: ubuntu-24.04-arm | |
| platform: linux/arm64 | |
| runs-on: ${{ matrix.runner }} | |
| steps: | |
| - name: Set environment variables | |
| run: | | |
| # TODO: Delete it once you have completed the migration from CircleCI. | |
| echo "CIRCLE_BUILD_URL=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_ENV | |
| echo "GITHUB_JOB_URL=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_ENV | |
| echo "CHATWORK_API_TOKEN=${{ secrets.CHATWORK_API_TOKEN }}" >> $GITHUB_ENV | |
| echo "CHATWORK_NOTIFICATION_ROOM_ID=${{ secrets.CHATWORK_NOTIFICATION_ROOM_ID }}" >> $GITHUB_ENV | |
| - run: echo ${{ github.head_ref }} | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| fetch-depth: 0 | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0 | |
| with: | |
| username: ${{ secrets.CW_DOCKER_HUB_USERNAME }} | |
| password: ${{ secrets.CW_DOCKER_HUB_TOKEN }} | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 | |
| with: | |
| image: tonistiigi/binfmt:qemu-v7.0.0-28 | |
| platforms: linux/amd64,linux/arm64 | |
| - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 | |
| # TODO: Replace docker-compose in each Makefile and then delete it. | |
| - name: Add docker-compose | |
| run: | | |
| mkdir -p /home/runner/.local/bin | |
| cat << EOT >> /home/runner/.local/bin/docker-compose | |
| #!/bin/bash | |
| docker compose "\$@" | |
| EOT | |
| chmod +x /home/runner/.local/bin/docker-compose | |
| - run: make ci:diff | |
| - name: Build | |
| run: | | |
| ARCH=`make arch` | |
| EXTENSION=`make extension` | |
| make ci:diff | while read DIR; do | |
| cd ${GITHUB_WORKSPACE}/${DIR} | |
| if find . -type l -o -type f -name "Dockerfile${EXTENSION}" | grep Dockerfile ; then | |
| make build; | |
| else | |
| echo "${DIR} is ${ARCH} not supported. make build & make test was skipped."; | |
| fi | |
| done | |
| - name: Push | |
| run: | | |
| ARCH=`make arch` | |
| EXTENSION=`make extension` | |
| make ci:diff | while read DIR; do | |
| cd ${GITHUB_WORKSPACE}/${DIR} | |
| if find . -type l -o -type f -name "Dockerfile${EXTENSION}" | grep Dockerfile ; then | |
| make push; | |
| else | |
| echo "${DIR} is ${ARCH} not supported. make build & make test was skipped."; | |
| fi | |
| done | |
| - name: Notification failed | |
| if: failure() | |
| run: | | |
| ARCH=`make arch` | |
| EXTENSION=`make extension` | |
| make ci:diff | while read DIR; do | |
| if find ./${DIR} -type l -o -type f -name "Dockerfile${EXTENSION}" | grep Dockerfile ; then | |
| make ci:notify -e TITLE="Github Actions: Failed push chatwork/${DIR} arch: $(make arch) (devil)" \ | |
| -e BODY="$(git log -1 --pretty=format:"%h - %an : %s")"; | |
| else | |
| echo "chatwork/${DIR} is ${ARCH} not supported. docker push was skipped."; | |
| fi | |
| done | |
| - name: Notification success | |
| if: success() | |
| run: | | |
| ARCH=`make arch` | |
| EXTENSION=`make extension` | |
| make ci:diff | while read DIR; do | |
| if find ./${DIR} -type l -o -type f -name "Dockerfile${EXTENSION}" | grep Dockerfile ; then | |
| version=$(docker inspect -f {{.Config.Labels.version}} chatwork/${DIR}); | |
| echo "version: ${version}" | |
| changelog=$(make ci:changelog -e DIR="${DIR}/"); | |
| echo "changelog: ${changelog}" | |
| make ci:notify -e TITLE="Release chatwork/${DIR}:${version} arch: $(make arch) (gogo)" \ | |
| -e BODY="$(echo -e "changelog\n${changelog}")"; | |
| else | |
| echo "chatwork/${DIR} is ${ARCH} not supported. docker push was skipped."; | |
| fi | |
| done | |
| manifest: | |
| if: github.ref_name == 'master' | |
| needs: | |
| - test | |
| - push | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Set environment variables | |
| run: | | |
| # TODO: Delete it once you have completed the migration from CircleCI. | |
| echo "CIRCLE_BUILD_URL=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_ENV | |
| echo "GITHUB_JOB_URL=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_ENV | |
| echo "CHATWORK_API_TOKEN=${{ secrets.CHATWORK_API_TOKEN }}" >> $GITHUB_ENV | |
| echo "CHATWORK_NOTIFICATION_ROOM_ID=${{ secrets.CHATWORK_NOTIFICATION_ROOM_ID }}" >> $GITHUB_ENV | |
| - run: echo ${{ github.head_ref }} | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| fetch-depth: 0 | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0 | |
| with: | |
| username: ${{ secrets.CW_DOCKER_HUB_USERNAME }} | |
| password: ${{ secrets.CW_DOCKER_HUB_TOKEN }} | |
| - uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 | |
| - run: make ci:diff | |
| - name: Install hub-tool | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y expect | |
| curl -OL https://github.com/docker/hub-tool/releases/download/v0.4.3/hub-tool-linux-amd64.tar.gz | |
| tar xvf hub-tool-linux-amd64.tar.gz | |
| sudo mv ./hub-tool/hub-tool /usr/local/bin | |
| expect -c " | |
| set timeout 5 | |
| spawn env hub-tool login ${{ secrets.CW_DOCKER_HUB_USERNAME }} | |
| expect \"Password:\" | |
| send \"${{ secrets.CW_DOCKER_HUB_TOKEN }}\n\" | |
| expect \"$\" | |
| exit 0 | |
| " | |
| hub-tool version | |
| - name: Update manifest | |
| run: | | |
| make ci:diff | |
| make ci:diff | while read DIR; do | |
| if [ -e "$GITHUB_WORKSPACE/$DIR/Dockerfile.arm64" ] && [ -e "$GITHUB_WORKSPACE/$DIR/Dockerfile" ] && [ ! -L "$GITHUB_WORKSPACE/$DIR/Dockerfile.arm64" ]; then | |
| cd ${GITHUB_WORKSPACE}/${DIR}; | |
| make build; | |
| make manifest:push; | |
| else | |
| echo "skip manifest job" | |
| fi | |
| done | |
| - name: Notification failed | |
| if: failure() | |
| run: | | |
| make ci:notify -e TITLE="CircleCI: Failed manifest (devil)" \ | |
| -e BODY="$(git log -1 --pretty=format:"%h - %an : %s")"; | |
| - name: Notification success | |
| if: success() | |
| run: | | |
| make ci:diff | while read DIR; do | |
| if [ -e "$GITHUB_WORKSPACE/$DIR/Dockerfile.arm64" ] && [ -e "$GITHUB_WORKSPACE/$DIR/Dockerfile" ] && [ ! -L "$GITHUB_WORKSPACE/$DIR/Dockerfile.arm64" ]; then | |
| version=$(docker inspect -f {{.Config.Labels.version}} chatwork/${DIR}); | |
| make ci:notify -e TITLE="manifest succeeded chatwork/${DIR}:${version} (gogo)" \ | |
| -e BODY="$(make manifest:succeed-message -f ${GITHUB_WORKSPACE}/${DIR}/Makefile)"; | |
| fi | |
| done |