diff --git a/.github/workflows/haea_release.yml b/.github/workflows/haea_release.yml new file mode 100644 index 00000000..18cfa2c3 --- /dev/null +++ b/.github/workflows/haea_release.yml @@ -0,0 +1,110 @@ +name: "HAEA Release" + +on: + workflow_dispatch: + inputs: + version: + description: 'enter version(x.y.z)' + required: true + default: '2.0.0' + container_arch: + type: choice + description: 'choose container architecture' + default: linux/amd64 + options: + - "linux/amd64" + - "linux/amd64,linux/arm64" + + +env: + ARCH: ${{ github.event.inputs.container_arch }} + VERSION: ${{ github.event.inputs.version }} + PACKAGE_VERSION: ${{ github.event.inputs.version }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + BRANCH_NAME: ${{ github.ref_name }} + +jobs: + tagging: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + token: ${{ secrets.PAT_TOKEN }} + + - name: tagging + run: | + git config user.email admin@cloudforet.io + git config user.name cloudforet-admin + git tag ${{ env.VERSION }} + git push origin ${{ env.VERSION }} + + - name: Notice when job fails + if: failure() + uses: 8398a7/action-slack@v3.15.0 + with: + status: ${{job.status}} + fields: repo,workflow,job + author_name: Github Action Slack + + docker: + needs: tagging + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + token: ${{ secrets.PAT_TOKEN }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.CLOUDFORET_DEV_DOCKER_USERNAME }} + password: ${{ secrets.CLOUDFORET_DEV_DOCKER_PASSWORD }} + + - name: Build and push to dockerhub + uses: docker/build-push-action@v4 + with: + context: . + platforms: ${{ env.ARCH }} + push: true + tags: cloudforet/${{ github.event.repository.name }}:${{ env.VERSION }} + build-args: | + PACKAGE_VERSION=${{ env.PACKAGE_VERSION }} + BRANCH_NAME=${{ env.BRANCH_NAME }} + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v2 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: us-east-1 + + - name: Login to Amazon ECR + run: aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin ${{ secrets.ECR_REPO }} + + - name: Build and push to ECR + uses: docker/build-push-action@v4 + with: + context: . + platforms: ${{ env.ARCH }} + push: true + tags: ${{ secrets.ECR_REPO }}/${{ github.event.repository.name }}:${{ env.VERSION }} + build-args: | + PACKAGE_VERSION=${{ env.PACKAGE_VERSION }} + BRANCH_NAME=${{ env.BRANCH_NAME }} + provenance: false + + - name: Notice when job fails + if: failure() + uses: 8398a7/action-slack@v3.15.0 + with: + status: ${{job.status}} + fields: repo,workflow,job + author_name: Github Action Slack \ No newline at end of file