Finalise Django ADR #49
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: "CI/CD pull request" | |
on: | |
pull_request: | |
types: [opened, reopened, synchronize] | |
jobs: | |
metadata: | |
name: "Set CI/CD metadata" | |
runs-on: ubuntu-latest | |
timeout-minutes: 1 | |
outputs: | |
build_datetime_london: ${{ steps.variables.outputs.build_datetime_london }} | |
build_datetime: ${{ steps.variables.outputs.build_datetime }} | |
build_timestamp: ${{ steps.variables.outputs.build_timestamp }} | |
build_epoch: ${{ steps.variables.outputs.build_epoch }} | |
nodejs_version: ${{ steps.variables.outputs.nodejs_version }} | |
python_version: ${{ steps.variables.outputs.python_version }} | |
terraform_version: ${{ steps.variables.outputs.terraform_version }} | |
version: ${{ steps.variables.outputs.version }} | |
steps: | |
- name: "Checkout code" | |
uses: actions/checkout@v4 | |
- name: "Set CI/CD variables" | |
id: variables | |
run: | | |
datetime=$(date -u +'%Y-%m-%dT%H:%M:%S%z') | |
echo "build_datetime_london=$(TZ=Europe/London date --date=$datetime +'%Y-%m-%dT%H:%M:%S%z')" >> $GITHUB_OUTPUT | |
echo "build_datetime=$datetime" >> $GITHUB_OUTPUT | |
echo "build_timestamp=$(date --date=$datetime -u +'%Y%m%d%H%M%S')" >> $GITHUB_OUTPUT | |
echo "build_epoch=$(date --date=$datetime -u +'%s')" >> $GITHUB_OUTPUT | |
echo "nodejs_version=$(grep "^nodejs" .tool-versions | cut -f2 -d' ')" >> $GITHUB_OUTPUT | |
echo "python_version=$(grep "^python" .tool-versions | cut -f2 -d' ')" >> $GITHUB_OUTPUT | |
echo "terraform_version=$(grep "^terraform" .tool-versions | cut -f2 -d' ')" >> $GITHUB_OUTPUT | |
echo "version=${GITHUB_REF}" >> $GITHUB_OUTPUT | |
commit-stage: | |
name: "Commit stage" | |
needs: [metadata] | |
uses: ./.github/workflows/stage-1-commit.yaml | |
with: | |
build_datetime: "${{ needs.metadata.outputs.build_datetime }}" | |
build_timestamp: "${{ needs.metadata.outputs.build_timestamp }}" | |
build_epoch: "${{ needs.metadata.outputs.build_epoch }}" | |
nodejs_version: "${{ needs.metadata.outputs.nodejs_version }}" | |
python_version: "${{ needs.metadata.outputs.python_version }}" | |
terraform_version: "${{ needs.metadata.outputs.terraform_version }}" | |
version: "${{ needs.metadata.outputs.version }}" | |
secrets: inherit | |
test-stage: | |
name: "Test stage" | |
needs: [metadata] | |
uses: ./.github/workflows/stage-2-test.yaml | |
with: | |
build_datetime: "${{ needs.metadata.outputs.build_datetime }}" | |
build_timestamp: "${{ needs.metadata.outputs.build_timestamp }}" | |
build_epoch: "${{ needs.metadata.outputs.build_epoch }}" | |
nodejs_version: "${{ needs.metadata.outputs.nodejs_version }}" | |
python_version: "${{ needs.metadata.outputs.python_version }}" | |
terraform_version: "${{ needs.metadata.outputs.terraform_version }}" | |
version: "${{ needs.metadata.outputs.version }}" | |
secrets: inherit | |
build-stage: | |
name: "Build stage" | |
needs: [metadata, test-stage] | |
uses: ./.github/workflows/stage-3-build.yaml | |
with: | |
build_datetime: "${{ needs.metadata.outputs.build_datetime }}" | |
build_timestamp: "${{ needs.metadata.outputs.build_timestamp }}" | |
build_epoch: "${{ needs.metadata.outputs.build_epoch }}" | |
nodejs_version: "${{ needs.metadata.outputs.nodejs_version }}" | |
python_version: "${{ needs.metadata.outputs.python_version }}" | |
terraform_version: "${{ needs.metadata.outputs.terraform_version }}" | |
version: "${{ needs.metadata.outputs.version }}" | |
secrets: inherit | |
acceptance-stage: | |
name: "Acceptance stage" | |
needs: [metadata, build-stage] | |
uses: ./.github/workflows/stage-4-acceptance.yaml | |
with: | |
build_datetime: "${{ needs.metadata.outputs.build_datetime }}" | |
build_timestamp: "${{ needs.metadata.outputs.build_timestamp }}" | |
build_epoch: "${{ needs.metadata.outputs.build_epoch }}" | |
nodejs_version: "${{ needs.metadata.outputs.nodejs_version }}" | |
python_version: "${{ needs.metadata.outputs.python_version }}" | |
terraform_version: "${{ needs.metadata.outputs.terraform_version }}" | |
version: "${{ needs.metadata.outputs.version }}" | |
secrets: inherit |