From 8d4bc9cba211f4e27595d70b4a56e4fcaa545967 Mon Sep 17 00:00:00 2001 From: David <62899351+davidclaveau@users.noreply.github.com> Date: Tue, 12 Dec 2023 14:18:15 -0800 Subject: [PATCH 1/6] add github actions, add cert signing automation --- .github/workflows/main.yaml | 110 ++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 .github/workflows/main.yaml diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml new file mode 100644 index 00000000..98c857c7 --- /dev/null +++ b/.github/workflows/main.yaml @@ -0,0 +1,110 @@ +name: Build +on: + push: + branches: [ "master" ] + +jobs: + build-ios: + name: Build and sign ios + runs-on: macos-latest + + env: + PROJECT: ${{ 'invasivesbc-mussels.iOS.xcworkspace' }} + SCHEME: ${{ 'invasivesbc-mussels.iOS' }} + DATA_DIR: ${{ 'xcbuild' }} + ARCHIVE_NAME: ${{ 'invasivesbc-mussels.iOS.xcarchive' }} + EXPORT_DIR: ${{ 'export' }} + IPA_NAME: ${{ 'invasivesbc-mussels.iOS.ipa' }} + + steps: + - name: run number with offset + env: + NUM: ${{ github.run_number }} + run: | + echo ::set-env name=GITHUB_RUN_NUMBER_WITH_OFFSET::$(($NUM+383)) + + - name: Checkout + uses: actions/checkout@v3 + + - name: Display XCode Path for debug + run: | + xcode-select -p + + - name: Cache Pods + uses: actions/cache@v3 + with: + path: ios/Pods + key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} + restore-keys: | + ${{ runner.os }}-pods- + + - name: CocoaPod Install + run: pod install + + # from https://docs.github.com/en/enterprise-cloud@latest/actions/deployment/deploying-xcode-applications/installing-an-apple-certificate-on-macos-runners-for-xcode-development + - name: Install the Apple certificate and provisioning profile + env: + # The first two keys are from the bcgov organization secrets + BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_APP_STORE_BUILD_CERTIFICATE_BASE64 }} + P12_PASSWORD: ${{ secrets.APPLE_APP_STORE_BUILD_CERTIFICATE_PASSWD }} + # These two keys are from your app's repo secrets + BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.IOS_PROVISION_PROFILE_BASE64 }} + KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} + run: | + # create variables + CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 + PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision + KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db + + # import certificate and provisioning profile from secrets + echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH + echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode --output $PP_PATH + + # create temporary keychain + security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + security set-keychain-settings -lut 21600 $KEYCHAIN_PATH + security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + + # import certificate to keychain + security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH + security list-keychain -d user -s $KEYCHAIN_PATH + + # apply provisioning profile + mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles + cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles + + - name: Increment Build No. + env: + BUILD_NO: ${{ env.GITHUB_RUN_NUMBER_WITH_OFFSET }} + run: | + # Set Build Number. Not worrying about storing to repo. + agvtool new-version -all ${BUILD_NO} + + - name: Build For Release + run: | + xcodebuild \ + -workspace $PROJECT \ + -scheme $SCHEME \ + -configuration Release \ + -sdk iphoneos \ + -derivedDataPath $DATA_DIR \ + -archivePath ${DATA_DIR}/${ARCHIVE_NAME} \ + archive + + - name: Export Archive + # This is the step that signs the build + run: | + xcodebuild \ + -exportArchive \ + -archivePath ${DATA_DIR}/${ARCHIVE_NAME} \ + -exportPath $EXPORT_DIR \ + -exportOptionsPlist exportOptions.plist \ + -verbose + + - name: Upload a Build Artifact + uses: actions/upload-artifact@v3 + with: + name: ios-release + path: ${{ env.EXPORT_DIR }} + if-no-files-found: error + retention-days: 5 \ No newline at end of file From ebe2d5ed61d3b01d53d7940b3713ff1eb5c0a4b7 Mon Sep 17 00:00:00 2001 From: David <62899351+davidclaveau@users.noreply.github.com> Date: Tue, 12 Dec 2023 14:28:03 -0800 Subject: [PATCH 2/6] Added PR Labeller and PR Template --- .github/labeller.yaml | 15 +++++++++++++++ .github/workflows/PULL_REQUEST_TEMPLATE.md | 13 +++++++++++++ .github/workflows/pr-labeller.yaml | 15 +++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 .github/labeller.yaml create mode 100644 .github/workflows/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/workflows/pr-labeller.yaml diff --git a/.github/labeller.yaml b/.github/labeller.yaml new file mode 100644 index 00000000..d9c66a53 --- /dev/null +++ b/.github/labeller.yaml @@ -0,0 +1,15 @@ +# Auto Label Git Action Config +# 'label_name' +# - path_of_diff/where/code_lives/to_base_label_upon + +# Any change to any file in .github/workflows +'GitHub Actions': + - '.github/workflows/*' + +# Any changes to file or subfolders in /frontend +'Frontend': + - 'ipad/**/*' + +# Any change to any file in any directory with a .env in name +'Environment Variables': + - '**/*.env*' \ No newline at end of file diff --git a/.github/workflows/PULL_REQUEST_TEMPLATE.md b/.github/workflows/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..679ae452 --- /dev/null +++ b/.github/workflows/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,13 @@ +## Pull Request Standards + +- [ ] The title of the PR is accurate +- [ ] The title includes the type of change [`HOTFIX`, `FEATURE`, `etc`] +- [ ] The PR title includes the ticket number in format of `[INSPECT-###]` +- [ ] Documentation is updated to reflect change + +# Description + +This PR includes the following proposed change(s): + +- { List all the changes made } +- { Include any screenshots necessary } \ No newline at end of file diff --git a/.github/workflows/pr-labeller.yaml b/.github/workflows/pr-labeller.yaml new file mode 100644 index 00000000..709b4eb9 --- /dev/null +++ b/.github/workflows/pr-labeller.yaml @@ -0,0 +1,15 @@ +name: "Pull Request Labeler" +on: +- pull_request_target + +jobs: + triage: + permissions: + contents: read + pull-requests: write + runs-on: ubuntu-latest + steps: + - uses: actions/labeler@v4 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + configuration-path: .github/labeller.yaml \ No newline at end of file From 842865cf0a7c9386f35d03cb548ecec25dc5968a Mon Sep 17 00:00:00 2001 From: David <62899351+davidclaveau@users.noreply.github.com> Date: Tue, 12 Dec 2023 14:34:17 -0800 Subject: [PATCH 3/6] Fixed path for PR Labeller and PR Template --- .github/{workflows => }/PULL_REQUEST_TEMPLATE.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/{workflows => }/PULL_REQUEST_TEMPLATE.md (100%) diff --git a/.github/workflows/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md similarity index 100% rename from .github/workflows/PULL_REQUEST_TEMPLATE.md rename to .github/PULL_REQUEST_TEMPLATE.md From 507efc63acad7fcb56c960efb18cfd1017cc3e91 Mon Sep 17 00:00:00 2001 From: Dave <62899351+davidclaveau@users.noreply.github.com> Date: Tue, 12 Dec 2023 14:50:42 -0800 Subject: [PATCH 4/6] Update .github/workflows/pr-labeller.yaml Co-authored-by: Matthew Logan <62873746+LocalNewsTV@users.noreply.github.com> --- .github/workflows/pr-labeller.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-labeller.yaml b/.github/workflows/pr-labeller.yaml index 709b4eb9..d98ef383 100644 --- a/.github/workflows/pr-labeller.yaml +++ b/.github/workflows/pr-labeller.yaml @@ -12,4 +12,4 @@ jobs: - uses: actions/labeler@v4 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" - configuration-path: .github/labeller.yaml \ No newline at end of file + configuration-path: .github/labeller.yaml From dbb1b7588e4afc70789b0344ac57ac43b89c31f3 Mon Sep 17 00:00:00 2001 From: Dave <62899351+davidclaveau@users.noreply.github.com> Date: Tue, 12 Dec 2023 14:50:48 -0800 Subject: [PATCH 5/6] Update .github/workflows/main.yaml Co-authored-by: Matthew Logan <62873746+LocalNewsTV@users.noreply.github.com> --- .github/workflows/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 98c857c7..630dac2a 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -107,4 +107,4 @@ jobs: name: ios-release path: ${{ env.EXPORT_DIR }} if-no-files-found: error - retention-days: 5 \ No newline at end of file + retention-days: 5 From 619a1b8636a4e2ba2a56a5cee61b530f84c6fe6f Mon Sep 17 00:00:00 2001 From: Dave <62899351+davidclaveau@users.noreply.github.com> Date: Tue, 12 Dec 2023 14:50:55 -0800 Subject: [PATCH 6/6] Update .github/labeller.yaml Co-authored-by: Matthew Logan <62873746+LocalNewsTV@users.noreply.github.com> --- .github/labeller.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/labeller.yaml b/.github/labeller.yaml index d9c66a53..aa72282e 100644 --- a/.github/labeller.yaml +++ b/.github/labeller.yaml @@ -12,4 +12,4 @@ # Any change to any file in any directory with a .env in name 'Environment Variables': - - '**/*.env*' \ No newline at end of file + - '**/*.env*'