diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml deleted file mode 100644 index 1a022ce61..000000000 --- a/.github/workflows/deploy-dev.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Deploy / dev - -on: - push: - branches: - - main - -concurrency: deploy-dev - -jobs: - deploy: - uses: ./.github/workflows/deploy.yml - with: - environment: dev - url: https://dev.online.ntnu.no - secrets: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG }} - SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml deleted file mode 100644 index 55a00165d..000000000 --- a/.github/workflows/deploy-prod.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Deploy / Production - -on: - release: - types: - - released - -concurrency: deploy-prod - -jobs: - deploy: - uses: ./.github/workflows/deploy.yml - with: - environment: prod - url: https://online.ntnu.no - secrets: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG }} - SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 6663314b6..000000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,115 +0,0 @@ -name: Deploy - -on: - workflow_call: - inputs: - environment: - required: true - type: string - url: - required: true - type: string - secrets: - AWS_ACCESS_KEY_ID: - required: true - AWS_SECRET_ACCESS_KEY: - required: true - SENTRY_AUTH_TOKEN: - required: true - SENTRY_ORG: - required: true - SENTRY_PROJECT: - required: true - -env: - ECR_REPOSITORY: onlineweb4-zappa - -jobs: - deploy: - runs-on: ubuntu-latest - environment: - name: ${{ inputs.environment }} - url: ${{ inputs.url }} - env: - ENVIRONMENT: ${{ inputs.environment }} - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version-file: 'pyproject.toml' - - - name: Set up uv - # Install uv using the standalone installer - run: curl -LsSf https://astral.sh/uv/install.sh | sh - - - 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: eu-north-1 - - - name: Login to Amazon ECR - id: login-ecr - uses: aws-actions/amazon-ecr-login@v2 - - - name: Generate Zappa settings - run: uv run --extra prod -- zappa save-python-settings-file $ENVIRONMENT - - - name: Docker meta - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }} - tags: | - type=sha - type=semver,pattern={{version}} - - - name: Build static - uses: docker/build-push-action@v6 - with: - context: . - push: false - target: static-files - tags: ow4-static - - - name: Build and push - uses: docker/build-push-action@v6 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - build-args: | - ENVIRONMENT=${{ inputs.environment }} - VERSION=${{ steps.meta.outputs.version }} - - - name: Create Sentry release - uses: getsentry/action-release@v3 - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG }} - SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} - with: - environment: ${{ inputs.environment }} - version: ${{ steps.meta.outputs.version }} - - - name: Deploy - env: - IMAGE_TAG: ${{ github.sha }} - run: uv run --extra prod -- zappa update $ENVIRONMENT -d ${{ steps.login-ecr.outputs.registry }}/$ECR_REPOSITORY:${{ steps.meta.outputs.version }} - - - name: Sync static files - run: | - # kinda a cheat to copy files out of the docker image - ID=$(docker create ow4-static) - docker cp $ID:/srv/app/static static - BUCKET_NAME=$( yq ".${ENVIRONMENT}.environment_variables.OW4_S3_BUCKET_NAME" zappa_settings.yml ) - aws s3 sync static "s3://${BUCKET_NAME}/static" --delete --acl=public-read - - - name: Migrate - run: uv run --extra prod -- zappa manage $ENVIRONMENT migrate -