From 591142b2124950a1f8d5a2b46361b83862c75e64 Mon Sep 17 00:00:00 2001 From: Fadi George Date: Mon, 29 Dec 2025 16:45:44 -0800 Subject: [PATCH 1/5] chore: Refactor CodeQL workflow and update actions versions Updated CodeQL workflow configuration and versions. --- .github/workflows/codeql.yml | 41 ++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .github/workflows/codeql.yml diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..c62fc03 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,41 @@ +name: "CodeQL" + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + schedule: + - cron: '36 1 * * 0' + +jobs: + analyze: + name: Analyze (${{ matrix.language }}) + runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} + permissions: + security-events: write + + packages: read + + strategy: + fail-fast: false + matrix: + include: + - language: actions + build-mode: none + - language: swift + build-mode: autobuild + steps: + - name: Checkout repository + uses: actions/checkout@v6 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v4 + with: + languages: ${{ matrix.language }} + build-mode: ${{ matrix.build-mode }} + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v4 + with: + category: "/language:${{matrix.language}}" From 41b08c4102151e2d5832550ac93a9843488ebc1c Mon Sep 17 00:00:00 2001 From: Fadi George Date: Tue, 30 Dec 2025 13:08:55 -0800 Subject: [PATCH 2/5] adjust codeql workflow --- .github/workflows/codeql.yml | 72 ++++++++++++++++++++++++++---------- .gitignore | 5 ++- 2 files changed, 56 insertions(+), 21 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index c62fc03..8b315d0 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,12 +1,16 @@ name: "CodeQL" +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + on: push: - branches: [ "main" ] + branches: ["main"] pull_request: - branches: [ "main" ] + branches: ["main"] schedule: - - cron: '36 1 * * 0' + - cron: "36 1 * * 0" jobs: analyze: @@ -21,21 +25,49 @@ jobs: fail-fast: false matrix: include: - - language: actions - build-mode: none - - language: swift - build-mode: autobuild + - language: actions + build-mode: none + - language: swift + build-mode: manual steps: - - name: Checkout repository - uses: actions/checkout@v6 - - - name: Initialize CodeQL - uses: github/codeql-action/init@v4 - with: - languages: ${{ matrix.language }} - build-mode: ${{ matrix.build-mode }} - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v4 - with: - category: "/language:${{matrix.language}}" + - name: Checkout repository + uses: actions/checkout@v6 + + - name: Create missing wrapper directory + if: matrix.language == 'swift' + run: | + if [ ! -d "OneSignalLiveActivitiesWrapper" ]; then + mkdir -p OneSignalLiveActivitiesWrapper/include + echo "" > OneSignalLiveActivitiesWrapper/dummy.m + echo "" > OneSignalLiveActivitiesWrapper/include/dummy.h + echo "Created OneSignalLiveActivitiesWrapper directory" + else + echo "OneSignalLiveActivitiesWrapper directory already exists" + fi + ls -la OneSignalLiveActivitiesWrapper/ || true + ls -la OneSignalLiveActivitiesWrapper/include/ || true + + - name: Verify package structure + if: matrix.language == 'swift' + run: | + swift package resolve || swift package describe --type json || true + + - name: Initialize CodeQL + uses: github/codeql-action/init@v4 + with: + languages: ${{ matrix.language }} + build-mode: ${{ matrix.build-mode }} + + - name: Build Swift Package + if: matrix.language == 'swift' + timeout-minutes: 20 + run: | + pwd + ls -la OneSignalLiveActivitiesWrapper/ || echo "ERROR: Directory not found!" + test -d OneSignalLiveActivitiesWrapper && test -f OneSignalLiveActivitiesWrapper/dummy.m && test -f OneSignalLiveActivitiesWrapper/include/dummy.h || (echo "ERROR: Directory structure invalid!" && exit 1) + swift build --arch arm64 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v4 + with: + category: "/language:${{matrix.language}}" diff --git a/.gitignore b/.gitignore index 7281196..2ecb60a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,7 @@ .swiftpm .swiftpm/xcode/xcuserdata xcuserdata -.swiftpm/xcode/package.xcworkspace/xcuserdata \ No newline at end of file +.swiftpm/xcode/package.xcworkspace/xcuserdata +.build +dummy.m +dummy.h \ No newline at end of file From 31a9c22b9e38b18c442fe2e7f80d43adb45fa672 Mon Sep 17 00:00:00 2001 From: Fadi George Date: Tue, 30 Dec 2025 14:05:45 -0800 Subject: [PATCH 3/5] try to improve build times --- .github/workflows/codeql.yml | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 8b315d0..60174ef 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -33,6 +33,17 @@ jobs: - name: Checkout repository uses: actions/checkout@v6 + - name: Cache Swift Package Manager binaries + if: matrix.language == 'swift' + uses: actions/cache@v5 + with: + path: | + ~/.swiftpm/cache + ~/Library/Caches/org.swift.swiftpm + key: ${{ runner.os }}-spm-binaries-${{ hashFiles('Package.swift') }} + restore-keys: | + ${{ runner.os }}-spm-binaries- + - name: Create missing wrapper directory if: matrix.language == 'swift' run: | @@ -40,17 +51,7 @@ jobs: mkdir -p OneSignalLiveActivitiesWrapper/include echo "" > OneSignalLiveActivitiesWrapper/dummy.m echo "" > OneSignalLiveActivitiesWrapper/include/dummy.h - echo "Created OneSignalLiveActivitiesWrapper directory" - else - echo "OneSignalLiveActivitiesWrapper directory already exists" fi - ls -la OneSignalLiveActivitiesWrapper/ || true - ls -la OneSignalLiveActivitiesWrapper/include/ || true - - - name: Verify package structure - if: matrix.language == 'swift' - run: | - swift package resolve || swift package describe --type json || true - name: Initialize CodeQL uses: github/codeql-action/init@v4 @@ -62,10 +63,8 @@ jobs: if: matrix.language == 'swift' timeout-minutes: 20 run: | - pwd - ls -la OneSignalLiveActivitiesWrapper/ || echo "ERROR: Directory not found!" test -d OneSignalLiveActivitiesWrapper && test -f OneSignalLiveActivitiesWrapper/dummy.m && test -f OneSignalLiveActivitiesWrapper/include/dummy.h || (echo "ERROR: Directory structure invalid!" && exit 1) - swift build --arch arm64 + swift build --arch arm64 --configuration release - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v4 From 66cee2495c10c38a6aabe71e396d597e1f79a400 Mon Sep 17 00:00:00 2001 From: Fadi George Date: Tue, 30 Dec 2025 14:19:57 -0800 Subject: [PATCH 4/5] test build time --- .github/workflows/codeql.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 60174ef..e30f975 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -18,7 +18,6 @@ jobs: runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} permissions: security-events: write - packages: read strategy: @@ -38,8 +37,10 @@ jobs: uses: actions/cache@v5 with: path: | - ~/.swiftpm/cache + ~/.swiftpm ~/Library/Caches/org.swift.swiftpm + ~/Library/Developer/Xcode/DerivedData + .build key: ${{ runner.os }}-spm-binaries-${{ hashFiles('Package.swift') }} restore-keys: | ${{ runner.os }}-spm-binaries- @@ -64,7 +65,7 @@ jobs: timeout-minutes: 20 run: | test -d OneSignalLiveActivitiesWrapper && test -f OneSignalLiveActivitiesWrapper/dummy.m && test -f OneSignalLiveActivitiesWrapper/include/dummy.h || (echo "ERROR: Directory structure invalid!" && exit 1) - swift build --arch arm64 --configuration release + swift build --arch arm64 --target OneSignalOutcomesWrapper - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v4 From bf7513dd974407d7baf719cecb43c001f531c699 Mon Sep 17 00:00:00 2001 From: Fadi George Date: Tue, 30 Dec 2025 15:09:53 -0800 Subject: [PATCH 5/5] build swift on schedule --- .github/workflows/codeql.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index e30f975..093c99e 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -28,12 +28,14 @@ jobs: build-mode: none - language: swift build-mode: manual + # Only include Swift analysis on scheduled runs + run-swift: ${{ github.event_name == 'schedule' }} steps: - name: Checkout repository uses: actions/checkout@v6 - name: Cache Swift Package Manager binaries - if: matrix.language == 'swift' + if: matrix.language == 'swift' && matrix.run-swift == true uses: actions/cache@v5 with: path: | @@ -46,7 +48,7 @@ jobs: ${{ runner.os }}-spm-binaries- - name: Create missing wrapper directory - if: matrix.language == 'swift' + if: matrix.language == 'swift' && matrix.run-swift == true run: | if [ ! -d "OneSignalLiveActivitiesWrapper" ]; then mkdir -p OneSignalLiveActivitiesWrapper/include @@ -55,19 +57,21 @@ jobs: fi - name: Initialize CodeQL + if: matrix.language != 'swift' || matrix.run-swift == true uses: github/codeql-action/init@v4 with: languages: ${{ matrix.language }} build-mode: ${{ matrix.build-mode }} - name: Build Swift Package - if: matrix.language == 'swift' + if: matrix.language == 'swift' && matrix.run-swift == true timeout-minutes: 20 run: | test -d OneSignalLiveActivitiesWrapper && test -f OneSignalLiveActivitiesWrapper/dummy.m && test -f OneSignalLiveActivitiesWrapper/include/dummy.h || (echo "ERROR: Directory structure invalid!" && exit 1) swift build --arch arm64 --target OneSignalOutcomesWrapper - name: Perform CodeQL Analysis + if: matrix.language != 'swift' || matrix.run-swift == true uses: github/codeql-action/analyze@v4 with: category: "/language:${{matrix.language}}"