diff --git a/.github/workflows/dev-pipeline.yml b/.github/workflows/dev-pipeline.yml new file mode 100644 index 000000000..d165d58d7 --- /dev/null +++ b/.github/workflows/dev-pipeline.yml @@ -0,0 +1,102 @@ +name: Develop Aepp Base pipelines + +on: + push: + branches: + - develop + +env: + ENV: "dev" + APP: "aepp-base" + +concurrency: aescan_develop_environment + +jobs: + main: + runs-on: ubuntu-latest + environment: develop + name: Develop Pipeline Aepp Base + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Get commit sha on PR Sync + if: github.event_name == 'push' + id: git-sha + shell: bash + run: | + echo GIT_SHA=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@master + # Only worked for us with this option on + with: + install: true + + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + # Key is named differently to avoid collision + key: ${{ runner.os }}-${{ env.ENV }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-${{ env.ENV }}-buildx + + - name: Log in to dockerhub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_PASS }} + + - name: Extract metadata for docker + if: github.event_name == 'push' + id: meta + uses: docker/metadata-action@v3 + with: + images: aeternity/aescan + tags: | + type=raw,value=develop,enable=${{ endsWith(GitHub.ref, 'develop') }} + + - name: Build and push docker image + if: github.event_name == 'push' + uses: docker/build-push-action@v2 + with: + context: . + file: Dockerfile + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,mode=max,dest=/tmp/.buildx-cache-new + + - name: Move cache + if: github.event_name == 'push' + run: | + rm -rf /tmp/.buildx-cache + mv /tmp/.buildx-cache-new /tmp/.buildx-cache + + - uses: actions/checkout@v2 + with: + repository: aeternity/gitops-apps.git + token: ${{ secrets.BOT_GITHUB_TOKEN }} + ref: dev + persist-credentials: false + fetch-depth: 0 + + - name: Latest Develop Branch Deploy on Push + if: github.event_name == 'push' + uses: aeternity/ae-github-actions/argocd-pr-sync@v4 + with: + git-sha: ${{ steps.git-sha.outputs.GIT_SHA }} + url-prefix: develop + env: ${{ env.ENV }} + app: ${{ env.APP }} + + - name: Push changes + uses: ad-m/github-push-action@master + with: + repository: aeternity/gitops-apps + github_token: ${{ secrets.BOT_GITHUB_TOKEN }} + branch: dev diff --git a/.github/workflows/prod-docker.yml b/.github/workflows/prod-pipeline.yml similarity index 87% rename from .github/workflows/prod-docker.yml rename to .github/workflows/prod-pipeline.yml index 0269e51dc..049d28e6c 100644 --- a/.github/workflows/prod-docker.yml +++ b/.github/workflows/prod-pipeline.yml @@ -30,10 +30,7 @@ jobs: - name: Set up Docker Buildx id: buildx - # Use the action from the master, as we've seen some inconsistencies with @v1 - # Issue: https://github.com/docker/build-push-action/issues/286 uses: docker/setup-buildx-action@master - # Only worked for us with this option on �‍♂️ with: install: true @@ -41,7 +38,6 @@ jobs: uses: actions/cache@v2 with: path: /tmp/.buildx-cache - # Key is named differently to avoid collision key: ${{ runner.os }}-${{ env.ENV }}-buildx-${{ github.sha }} restore-keys: | ${{ runner.os }}-${{ env.ENV }}-buildx @@ -78,9 +74,6 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=local,src=/tmp/.buildx-cache - # Note the mode=max here - # More: https://github.com/moby/buildkit#--export-cache-options - # And: https://github.com/docker/buildx#--cache-tonametypetypekeyvalue cache-to: type=local,mode=max,dest=/tmp/.buildx-cache-new - name: Move cache diff --git a/.github/workflows/staging-docker.yml b/.github/workflows/staging-pipeline.yml similarity index 91% rename from .github/workflows/staging-docker.yml rename to .github/workflows/staging-pipeline.yml index b366b8744..f0f822dab 100644 --- a/.github/workflows/staging-docker.yml +++ b/.github/workflows/staging-pipeline.yml @@ -15,9 +15,10 @@ jobs: runs-on: ubuntu-latest name: Staging Aepp Base Pipeline steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha }} - name: Set up Docker Buildx id: buildx @@ -50,8 +51,6 @@ jobs: with: images: aeternity/aepp-base tags: | - type=raw,value=latest,enable=${{ endsWith(GitHub.ref, 'master') }} - type=ref,event=tag type=ref,event=pr - name: Get commit sha on PR Sync @@ -89,6 +88,12 @@ jobs: persist-credentials: false fetch-depth: 0 + - name: Chekc the initial PR deployment status before make a PR Sync. + if: github.event_name == 'pull_request' && github.event.action == 'synchronize' + uses: aeternity/ae-github-actions/deploy-status@v7 + with: + url: https://pr-${{ env.PR_NUMBER }}-${{ env.APP }}.${{ env.ENV }}.aepps.com + - name: Staging PR Sync if: github.event_name == 'pull_request' && github.event.action == 'synchronize' uses: aeternity/ae-github-actions/argocd-pr-sync@v4